№ 1944 (Уровень: Базовый)
(А. Куканова) Аня составляет слова, переставляя буквы в слове ОДЕКОЛОН, избегая слов, где соседние буквы — одинаковые. Сколько различных слов, включая исходное, может составить Аня?
Комментарии к коду программы:
import itertools
- Импортируем модуль itertools
s = 'ОДЕКОЛОН'
- Создаем строку s
с алфавитом 'ОДЕКОЛОН'
my_set = set()
- Создаем пустое множество my_set
, в котором будем хранить найденные “слова”for s in itertools.permutations('ОДЕКОЛОН', 8):
- Используем цикл for
и функцию permutations()
из модуля itertools
, чтобы создать все возможные перестановки 8 символов из алфавита 'ОДЕКОЛОН'
slovo = ''.join(s)
- Собираем строку slovo
, объединяя все символы из кортежа s
в одну строкуif all(x not in slovo for x in 'ОО ДД ЕЕ КК ЛЛ НН'.split()):
- Проверяем, содержит ли строка slovo
любую из подстрок 'ОО', 'ДД', 'ЕЕ', 'КК', 'ЛЛ', или 'НН', используя метод all()
и генератор спискаmy_set.add(slovo)
- Если строка slovo
не содержит никаких подстрок, добавляем ее в множество my_set
print(len(my_set))
- Выводим количество элементов в множестве my_set
с помощью функции len()
import itertools
s = 'ОДЕКОЛОН'
my_set = set()
for s in itertools.permutations('ОДЕКОЛОН', 8):
slovo = ''.join(s)
if all(x not in slovo for x in 'ОО ДД ЕЕ КК ЛЛ НН'.split()):
my_set.add(slovo)
print(len(my_set))