Разбор 8.PNG

№ 1944 (Уровень: Базовый)

(А. Куканова) Аня составляет слова, переставляя буквы в слове ОДЕКОЛОН, избегая слов, где соседние буквы — одинаковые. Сколько различных слов, включая исходное, может составить Аня?

Untitled

Комментарии к коду программы:

  1. import itertools - Импортируем модуль itertools
  2. s = 'ОДЕКОЛОН' - Создаем строку s с алфавитом 'ОДЕКОЛОН'
  3. my_set = set() - Создаем пустое множество my_set, в котором будем хранить найденные “слова”
  4. for s in itertools.permutations('ОДЕКОЛОН', 8): - Используем цикл for и функцию permutations() из модуля itertools, чтобы создать все возможные перестановки 8 символов из алфавита 'ОДЕКОЛОН'
  5. slovo = ''.join(s) - Собираем строку slovo, объединяя все символы из кортежа s в одну строку
  6. if all(x not in slovo for x in 'ОО ДД ЕЕ КК ЛЛ НН'.split()): - Проверяем, содержит ли строка slovo любую из подстрок 'ОО', 'ДД', 'ЕЕ', 'КК', 'ЛЛ', или 'НН', используя метод all() и генератор списка
  7. my_set.add(slovo) - Если строка slovo не содержит никаких подстрок, добавляем ее в множество my_set
  8. 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))

Ответ: