Статья Автор: Лебедев Дмитрий

TUZ_6-02 Подсчет количества рычащих животных

TUZ_6-02 Подсчет количества рычащих животных

TUZ_6-02 Подсчет количества рычащих животных
6.2. Подсчет количества рычащих животных
Дана группа животных, названия которых написаны как обычно – 'cat' и 'dog' – и в обратном порядке – 'tac' и 'god'.
Животные начнут рычать, если увидят, что количество собак ('dog' и 'god') в списке слева или
справа (для 'cat' и 'dog' или 'tac' и 'god' соответственно) строго больше количества кошек ('cat' и 'tac').
Например, если animals = ['god', 'cat', 'cat', 'tac', 'tac', 'dog', 'cat', 'god'], то количество рычащих животных будет равно 2.
В этом списке animals выделены жирным элементы 'cat' и 'tac', для которых количество собак ('dog' и 'god')
больше количества кошек ('cat' и 'tac').
Ваша задача: написать функцию, которая принимает список животных и возвращает количество рычащих животных.
В табл. 6.2 показаны ожидаемые результаты для некоторых входных данных.
Таблица 6.2. Некоторые ожидаемые результаты для задачи подсчета количества рычащих животных
Animals Ожидаемый результат
tac, tac, tac, god, tac, dog, dog 4
tac, dog, dog, god, tac, dog, tac 2
tac, dog, dog, god, tac 1
tac, tac, dog, cat, tac 0

Алгоритм
Алгоритм перебирает животных в заданном списке animals и проверяет их названия 'cat', 'dog', 'tac' или 'god',
выполняя следующие шаги.
  1.  Принимается список животных animals.
  2.  Инициализируется переменная num_growlers, в которой накапливается количество рычащих животных.
  3.  Инициализируется переменная current_animal_index, отслеживающая текущее проверяемое животное.
  4.  Пока остаются животные для проверки (т. е. пока current_animal_ index меньше длины animals):
  •  а) если текущее животное 'cat' или 'dog', то подсчитывается количество кошек ('cat' и 'tac') и собак ('dog' и 'god'),
    предшествующих текущему животному в списке. Если собак больше, то число num_growlers увеличивается на единицу;
  • б) если текущее животное 'tac' или 'god', то подсчитывается коли- чество кошек ('cat' и 'tac') и собак ('dog' и 'god'),
    следующих за ним в списке. Если собак больше, то число num_growlers увеличивается на единицу;
  • в) переход к следующему животному в списке.
  1. Возвращается num_growlers – подсчитанное количество рычащих животных.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать