Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №23

Мишель составляет слова путём перестановки букв своего имени и располагает их в алфавитном порядке. Под каким номером будет находиться слово ШМЕЛЬИ? (Нумерация начинается с 1).

Решение через циклы

a = sorted(’МИШЕЛЬ’) # слово, записанное в алфавитном порядке

count = 0

for x1 in a:
    for x2 in a:
        for x3 in a:
            for x4 in a:
                for x5 in a:
                    for x6 in a:
                        s = x1+x2+x3+x4+x5+x6
                        # если слово составлено путем перестановки букв слова
                        if len(set(s)) == len(s):
                            count += 1
                            if s == ’ШМЕЛЬИ’:
                                print(count)

Решение через itertools

from itertools import permutations

s = ’МИШЕЛЬ’

r = sorted(permutations(s))

pattern = [x for x in ’ШМЕЛЬИ’]

position = 1

for x in r:
    if list(x) == pattern:
        print(position)
        break
    position += 1

Ответ: 556
Оцените статью
Я решу все!