Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 05 февраля 2026 06:59

Задача 3 (сколько самых длинных слов) Есть последовательность фамилий учеников. Последовательность заканчивается словом СТОП. Есть последовательность фамилий учеников. Последовательность заканчивается словом СТОП. Выведи количество фамилий наибольшей длины.

Ответ нейросети

05 февраля 2026 06:59

Вот подробное решение задачи 3: сколько самых длинных слов (фамилий), до слова СТОП.

Цель: понять принцип и получить числовой ответ по входной последовательности.

Идея:

  • Пробегаем по последовательности фамилий до встречи слова СТОП (оно не считается).
  • Находим максимальную длину фамилии.
  • Считаем, скольким фамилиям этой максимальной длины соответствуют.

Пошаговый алгоритм:

  1. Завести две переменные: max_len = 0 и count = 0.
  2. Читать фамилию по одной до тех пор, пока не встретится СТОП:
    • Если строка равна СТОП, завершить цикл.
    • Пусть l = длина текущей фамилии (после удаления лишних пробелов по желанию).
    • Если l > max_len: задать max_len = l и сбросить count = 1 (эта фамилия пока единственная с новой максимальной длиной).
    • Если l == max_len: увеличить count на 1.
    • Если l < max_len: ничего не делать.
  3. Вывести count. Если перед СТОП не было ни одной фамилии, ответ будет 0.
  4. Время выполнения: O(n), память: O(1).

Пример реализации на Python (пошаговый минималистичный вариант):

  • Ввод читается построчно; строка приводится к верхнему регистру не обязательно, но можно сравнивать точно как указано — СТОП.
  • Счётчик обновляется согласно правилу выше.

Код (Python): def count_longest_surnames(): max_len = 0 count = 0 while True: try: s = input().strip() except EOFError: break if s == "СТОП": break l = len(s) if l > max_len: max_len = l count = 1 elif l == max_len: count += 1 print(count)

Как это работает:

  • Если в последовательности есть фамилии: Иванов (6), Петров (6), Сидоров (7), Кузнецов (9), Иванов (6), STOP.
    • max_len становится 9 после Кузнецов, count = 1.
    • Вывод: 1.
  • Если две фамилии имеют одинаковую максимальную длину, например Смирнов (7) и Миронов (7) и STOP — ответ будет 2.

Дополнительные примеры:

  • Ввод: Иванов Петров Сидоров СТОП Вывод: 1 (макс. длина 7 у Сидоров).
  • Ввод: Андреев Петров Смирнов Смирнов СТОП Вывод: 2 (макс. длина 7 у Смирнов два раза).

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

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Задача 3 (сколько самых длинных слов) Есть последовательность фамилий учеников. Последовательность заканчивается словом СТОП. Есть последовательность фамилий учеников. Последовательность заканчивается словом СТОП. Выведи количество фамилий наибольшей длины.
Вот подробное решение задачи 3: сколько самых длинных слов (фамилий), до слова СТОП. Цель: понять принцип и получить числовой ответ по входной последовательности. Идея: - Пробегаем по последовательности фамилий до встречи слова СТОП (оно не считается). - Находим максимальную длину фамилии. - Считаем, скольким фамилиям этой максимальной длины соответствуют. Пошаговый алгоритм: 1) Завести две переменные: max_len = 0 и count = 0. 2) Читать фамилию по одной до тех пор, пока не встретится СТОП: - Если строка равна СТОП, завершить цикл. - Пусть l = длина текущей фамилии (после удаления лишних пробелов по желанию). - Если l > max_len: задать max_len = l и сбросить count = 1 (эта фамилия пока единственная с новой максимальной длиной). - Если l == max_len: увеличить count на 1. - Если l < max_len: ничего не делать. 3) Вывести count. Если перед СТОП не было ни одной фамилии, ответ будет 0. 4) Время выполнения: O(n), память: O(1). Пример реализации на Python (пошаговый минималистичный вариант): - Ввод читается построчно; строка приводится к верхнему регистру не обязательно, но можно сравнивать точно как указано — СТОП. - Счётчик обновляется согласно правилу выше. Код (Python): def count_longest_surnames(): max_len = 0 count = 0 while True: try: s = input().strip() except EOFError: break if s == "СТОП": break l = len(s) if l > max_len: max_len = l count = 1 elif l == max_len: count += 1 print(count) Как это работает: - Если в последовательности есть фамилии: Иванов (6), Петров (6), Сидоров (7), Кузнецов (9), Иванов (6), STOP. - max_len становится 9 после Кузнецов, count = 1. - Вывод: 1. - Если две фамилии имеют одинаковую максимальную длину, например Смирнов (7) и Миронов (7) и STOP — ответ будет 2. Дополнительные примеры: - Ввод: Иванов Петров Сидоров СТОП Вывод: 1 (макс. длина 7 у Сидоров). - Ввод: Андреев Петров Смирнов Смирнов СТОП Вывод: 2 (макс. длина 7 у Смирнов два раза). Если хочешь, могу адаптировать решение под другой язык программирования или привести псевдокод без привязки к конкретной парадигме.