София выписывает все четырехбуквенные комбинации, составленные из букв У, Л, Ы, Б, К, А. При этом упорядочивая их по алфавиту.
Ниже записано начало списка:
- АААА
- АААБ
- АААК
- АААЛ
- АААУ
- АААЫ
…
Определите, под каким номером в списке идёт первое слово, которое начинается на К и заканчивается на УЛ?
Решение руками
Обозначим буквы: А – 0, Б – 1, К – 2, Л – 3, У – 4, Ы – 5.
Тогда первое слово, которое начинается на К и заканчивается на УЛ:
Так как в списке нумерация начинается с единицы, то искомый номер – .
Решение через циклы
s = ’АБКЛУЫ’
n = 1
nums = []
for a in s:
for b in s:
for c in s:
for d in s:
w = a+b+c+d
if a == ’К’ and c+d == ’УЛ’:
nums.append(n)
n += 1
print(min(nums))
Решение через itertools
from itertools import product
c = 0
for x in product(’АБКЛУЫ’, repeat = 4):
word = ’’.join(x)
c += 1
if word[0] == ’К’ and word[-2:] == ’УЛ’:
print(c)
break