Счетчик просмотров71

РЕШЕНИЕ 8 НОМЕРОВ (4/4)

Оглавление
Условие задачиРазбор условияРешение через вложенные циклыРешение через itertools.productВажное замечание

Условие задачи

Все пятибуквенные слова, составленные из букв С, Т, Р, О, К, А, записаны в алфавитном порядке и пронумерованы. Вот начало списка:

1. ААААА  
2. ААААК  
3. ААААО  
4. ААААР  
5. ААААС  
6. ААААТ

Определите, под каким номером стоит последнее слово с чётным номером, которое не начинается с букв А, С или Т и содержит ровно две буквы О.

Разбор условия

1. Алфавитный порядок: Слова записаны по алфавиту. Чтобы product генерировал их в таком же порядке, подаём буквы отсортированными: sorted('СТРОКА') → ['А','К','О','Р','С','Т']. Номер слова считаем через счётчик k.

2. Чётный номер: k % 2 == 0 — проверка чётности номера.

3. Не начинается с А, С, Т: word[0] not in 'АСТ' — значит начинается с К, О или Р.

4. Ровно две О: word.count('О') == 2

Ищем последнее слово: не используем break! При каждом совпадении перезаписываем last = k. Когда цикл закончится — в last будет номер последнего подходящего.

Баннер статьи

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

PYTHON-КОД
1
2
3
4
5
6
7
8
9
10
11
12
13
14

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

PYTHON-КОД
1
2
3
4
5
6
7
8
9
10

Важное замечание

sorted() обязателен: если буквы не отсортировать, слова будут не в алфавитном порядке и номера не совпадут с условием.

Если просят последнее — перезаписываем переменную (без break). Если первое — ставим break. Если количество — считаем cnt += 1.

Ответ: 5058

Оцените статью

Другие статьи по предмету

Другие статьи не найдены