Условие КЕГЭ: Тип 8 № 6479 (Уровень: Базовый) (A. Поликарпова)
Аня составляет 5-буквенные слова из букв К, A, Р, П, Ы. Каждая буква может встречаться ровно один раз. При этом в слове не могут стоять рядом две гласные буквы, а буква Р не может стоять на первом или последнем месте. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько слов может составить Аня?
Вариант 1: переберем все слова используя цикл for и строку алфавита "КАРПЫ"
s = 'КАРПЫ'
- Присваиваем переменной s
значение 'КАРПЫ'.s1 = 'КАПЫ'
- Присваиваем переменной s1
значение 'КАПЫ'.count = 0
- Инициализируем переменную count
со значением 0.for a in s1:
- Создаём цикл по символам в строке s1
, используя переменную a
.for b in s:
- Создаём цикл по символам в строке s
, используя переменную b
.for c in s:
- Создаём цикл по символам в строке s
, используя переменную c
.for d in s:
- Создаём цикл по символам в строке s
, используя переменную d
.for e in s1:
- Создаём цикл по символам в строке s1
, используя переменную e
.temp = a + b + c + d + e
- Соединяем значения переменных a
, b
, c
, d
и e
в одну строку и присваиваем ее переменной temp
.if temp.count('К') == 1 and temp.count('А') == 1 and temp.count('Р') == 1 and temp.count('П') == 1 and temp.count('Ы') == 1 and temp.count('АЫ') == 0 and temp.count('ЫА') == 0:
- Проверяем, что в строке temp
содержится ровно 1 символ 'К', 1 символ 'А', 1 символ 'Р', 1 символ 'П', 1 символ 'Ы', не содержится комбинация 'АЫ' и не содержится комбинация 'ЫА'.count += 1
- Увеличиваем значение переменной count
на 1.print(count)
- Выводим значение переменной count
на экран.# Код решения Вариант 1
s = 'КАРПЫ'
s1 = 'КАПЫ'
count = 0
for a in s1:
for b in s:
for c in s:
for d in s:
for e in s1:
temp = a + b + c + d + e
if temp.count('К') == 1 and temp.count('А') == 1 and temp.count('Р') == 1 and temp.count('П') == 1
and temp.count('Ы') == 1 and temp.count('АЫ') == 0 and temp.count('ЫА') == 0:
count += 1
print(count)
Вариант 2: решение через метод permutations из библиотеки itertools