Левая граница уже в двоичной системе, переводим правую границу. Она представлена в 16-ричной системе счисления, поэтому можно просто по таблице перевести каждую 16-ричную цифру в 4 двоичные:
CA₁₆ = 1100 1010₂
Если для целых a и b нужно посчитать количество целых чисел x, удовлетворяющих неравенству a < x < b, достаточно посчитать b - a - 1 (пример: 0 < x < 1 - 0 чисел). Если ответ получится отрицательный, ответ будет 0.
Каждое слово можно рассмотреть как множество (set) его букв, тогда слово подходит, если мощность пересечения множества его букв с множеством букв контрольного слова не меньше 3.
Код (Python 3):
words = input().split()
key_set = set(input())
chosen_words = [word for word in words if len(key_set.intersection(set(word))) >= 3]
6
Объяснение:
Левая граница уже в двоичной системе, переводим правую границу. Она представлена в 16-ричной системе счисления, поэтому можно просто по таблице перевести каждую 16-ричную цифру в 4 двоичные:
CA₁₆ = 1100 1010₂
Если для целых a и b нужно посчитать количество целых чисел x, удовлетворяющих неравенству a < x < b, достаточно посчитать b - a - 1 (пример: 0 < x < 1 - 0 чисел). Если ответ получится отрицательный, ответ будет 0.
1100 1010₂ - 1100 0011₂ - 1 = 1010₂ - 0011₂ - 1 = 10₁₀ - 3 - 1 = 6
Считываем строку, сразу разбиваем её на слова.
Считываем контрольное слово.
Каждое слово можно рассмотреть как множество (set) его букв, тогда слово подходит, если мощность пересечения множества его букв с множеством букв контрольного слова не меньше 3.
Код (Python 3):
words = input().split()
key_set = set(input())
chosen_words = [word for word in words if len(key_set.intersection(set(word))) >= 3]
print(*chosen_words, sep="; ")
Пример ввода:
фартук мокасины юбка кафтан
шарфик
Пример вывода:
фартук; мокасины; кафтан