E. Зайка — 5

В долгой дороге дети вновь заскучали, и родителям приходится их развлекать поиском зверушек за окном. Давайте вместе с ними найдём заек.

Формат ввода

В первой строке указано натуральное число N — количество выделенных придорожных местностей. В последующих строках записаны слова характеризующие выделенную местность.
Информация о каждой местности завершается словом «ВСЁ».

Формат вывода:

Количество местностей, в которых есть зайка.

Пример

Ввод

3
березка
елочка
зайка
волк
березка
ВСЁ
сосна
сосна
сосна
елочка
грибочки
медведь
ВСЁ
сосна
сосна
сосна
белочка
сосна
белочка
ВСЁ

Вывод

1

Ввод

4
зайка
березка
ВСЁ
зайка
зайка
ВСЁ
березка
елочка
березка
ВСЁ
елочка
елочка
елочка
ВСЁ

Вывод

2

Решение

Для решения задачи потребуется вложенный цикл и один флаг.

Получаем количество местностей, инициализируем счетчик местностей нулем и организуем первый цикл (for).
В теле цикла инициализируем флаг, означающий наличие зайки, значением False и организуем второй цикл, который прекратится, как только мы найдем строчку ‘ВСЁ’ (while).
В теле вложенного проверяем строчку на равенство зайке и убеждаемся, что значение нашего флага все еще False. Если условие выполнено (зайка найден и флаг имеет значение False), увеличиваем счетчик на единицу и устанавливаем флаг в True. Таким образом, мы больше не будем учитывать заек в этой местности.
По окончании обоих циклов выводим количество найденых местностей.

Как и в предыдущую задачу, ее можно решить с помощью одного цикла.

Посмотреть код

Решение

Python
# Решение с вложенными циклами

natures = int(input())

bunnies = 0

for _ in range(natures):
    counted = False
    while (s := input()) != 'ВСЁ':
        if s == 'зайка' and counted is False:
            bunnies = bunnies + 1
            counted = True

print(bunnies)

Решение

Python
# Решение с одним циклом

natures = int(input())

bunnies = 0

counted = False
while natures > 0:
    if (s := input()) == 'зайка' and counted is False:
        bunnies = bunnies + 1
        counted = True
    elif s == 'ВСЁ':
        natures -= 1
        counted = False

print(bunnies)
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алим
Алим
22.10.2024 22:37

ch=int(input())
k=0
flag=False
for i in range(1,ch+1):
    while (sl:=input())!=‘ВСЁ’:
        if sl==‘зайка’:
            flag=True
        else:
            flag=False
    if flag==True:
        k+=1
print(k)

Sanchez
Sanchez
26.11.2024 21:00
N = int(input())
counter = 0
mini_counter = 0
for i in range(N):
    while (locality := input()) != 'ВСЁ':
        if 'зайка' in locality:
            mini_counter += 1
    if mini_counter != 0:
        counter += 1
        mini_counter = 0
print(counter)