Форум » Кодирование и декодирование информации » Задание 3221 » Ответить

Задание 3221

kokindos07: Сергей составляет 5-буквенные коды из букв Ж, А, Л, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Сергей? Программа: [pre2] 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))[/pre2] Какие лишние случаи здесь не учтены? программа выводит число, которое больше чем число в ответе

Ответов - 1

polyakovss: Исправьте a=[x for x in product('жалей', repeat=5)] на a = map(lambda x: ''.join(x), product('жалей',repeat=5)) И можно чуть короче так:[pre2] 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)) [/pre2]



полная версия страницы