Олеся составляет пятибуквенные слова из букв слова АЛГОРИТМ, причем известно, что буквы в словах могут повторяться любое количество раз или же не встречаться вовсе. Помогите Олесе найти количество различных слов, являющимися палиндромами и содержащими в середине согласную букву.
Вычислить количество таких слов можно следующим путём: 8*8*5*1*1=320, где на первых двух позициях могут стоять любые буквы, в середине возможно 5 вариаций букв(согласные), а на последних двух позициях стоят те же буквы, что и в начале, поэтому иных вариантов мы не рассматриваем.
Решение программой (циклы):
ans = set()
alf = ’АЛГОРИТМ’
for x1 in alf:
for x2 in alf:
for x3 in alf:
for x4 in alf:
for x5 in alf:
w = x1 + x2 + x3 + x4 + x5
if w == w[::-1]:
if w[2] in ’ЛГРТМ’:
ans.add(w)
print(len(ans))
Решение программой (itertools):
from itertools import product
ans = set()
alf = ’АЛГОРИТМ’
for w in product(alf, repeat=5):
w = ’’.join(w)
if w == w[::-1]:
if w[2] in ’ЛГРТМ’:
ans.add(w)
print(len(ans))