Идея решения
- Нужно прочитать строки до строки "стоп" и взять последнюю букву каждой прочитанной строки (до появления "стоп"). Сложенная из этих последних букв строка и есть зашифрованное сообщение.
Пошаговый алгоритм
- Инициализировать пустую строку-результат или список для символов.
- Пока не встретится строка "стоп":
- считать очередную строку.
- если строка не равна "стоп", взять её последнюю букву и добавить к результату.
- Вывести полученное сообщение (объединённые последние буквы всех строк до "стоп").
Замечания
- В примере строки состоят только из букв; предполагается, что в строках есть хотя бы один символ. Если встречается пустая строка, можно пропускать её или обработать как отсутствие последней буквы.
- Если требуется учитывать только буквы, можно выбирать последнюю букву, пропуская символы-пунктуацию в конце строки.
Пример с заданным входом Ввод: Сегодня Котелок Красиво Мусор Видеть стоп
Обоснование:
- Последние буквы строк: "Сегодня" → 'я', "Котелок" → 'к', "Красиво" → 'о', "Мусор" → 'р', "Видеть" → 'ь'.
- Соединяем: яхорь? Нет — правильно: "якорь".
Ответ: якорь
Пояснение по сложности
- Время выполнения пропорционально суммарной длине всех прочитанных строк: O(total_chars).
- Память используется для хранения результата длиной равной числу прочитанных строк до "стоп" (обычно небольшая величина), поэтому O(length_of_result).
Почтовый пример кода (упрощённый, без лишних деталей)
В большинстве задач читают построчно до появления "стоп" и собирают последнюю букву каждой строки.
Простой вариант (без учёта странных концов строк):
- result = ""
- while True: s = input() if s == "стоп": break if s: result += s[-1]
- print(result)
Более надёжный вариант (если нужно пропускать любые неалфавитные завершающие символы):
- result = []
- while True: s = input() if s == "стоп": break for ch in reversed(s): if ch.isalpha(): result.append(ch) break
- print(''.join(result))
Если хочешь, могу привести готовый рабочий код на любом языке программирования (Python, C++, Java и т. п.) под твою задачу.