Автор | Сообщение |
|
Отправлено: 12.03.21 11:59. Заголовок: Задание 3221
Сергей составляет 5-буквенные коды из букв Ж, А, Л, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Сергей? Программа: from itertools import product a=[x for x in product('жалей', repeat=5)] new=set() for x in a: if x.count('й')<=1 and x[0]!='й' and x[-1]!='й' and x.count('йе')==0 and x.count('ей')==0: new.add(x) print(len(new)) Какие лишние случаи здесь не учтены? программа выводит число, которое больше чем число в ответе
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 12.03.21 13:06. Заголовок: Ответ
Исправьте цитата: | a=[x for x in product('жалей', repeat=5)] |
|
на цитата: | a = map(lambda x: ''.join(x), product('жалей',repeat=5)) |
| И можно чуть короче так: from itertools import product s = map(lambda x: ''.join(x), product('ЖАЛЕЙ',repeat=5)) L=[x for x in s if x.count('Й')<=1 and x[0] != 'Й' and x[-1] != 'Й' and 'ЕЙ' not in x and 'ЙЕ' not in x] print(len(L))
|
|
|