Перепутанная заметка

тема: Строки · уровень: базовый

Условие

Ты писал(а) список дел в телефоне, но автозамена вдруг решила показать слова с конца — последнее первым.

Помоги восстановить «перевёрнутую» запись: слова должны идти в обратном порядке.

Формат ввода

В первой строке записано целое число n — количество слов (1 ≤ n ≤ 500). Во второй строке записаны n слов, разделённых пробелами. Каждое слово состоит из строчных латинских букв и имеет длину от 1 до 20.

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

Выведи те же n слов в обратном порядке, разделяя их одним пробелом.

Ограничения

Пример

Ввод:

5
kupit hleb i moloko segodnya

Вывод:

segodnya moloko i hleb kupit

Как решать — идея подхода

Приём: Разворот списка (reverse)

Ключевое наблюдение: менять внутри слов ничего не нужно — автозамена «перепутала» только порядок слов. Значит, задача сводится к операции над списком: взять те же элементы и пройти по ним с конца к началу.

Подходит приём «разворот массива/списка», потому что слова уже разделены пробелами, а вывести требуется ровно те же слова, только в обратной последовательности.

План решения:

Мини-сниппет идеи:

Сложность: O(n) по времени на разворот и сборку строки, память O(n) на список слов (n ≤ 500 — очень мало).

Частая ошибка: пытаться переворачивать строку целиком (получатся перевёрнутые буквы) или забыть, что reverse() меняет список на месте и возвращает None (нельзя писать words = words.reverse()).

Разберись руками

В заметке 5 слов: "kupit hleb i moloko segodnya". Автозамена показала их «с конца»: последнее слово должно стать первым, и так для всех слов.

Идея: Сначала разбей строку на отдельные слова по пробелам. Потом возьми слова в обратном порядке (с последнего к первому) и склей их обратно одним пробелом между соседними словами.

Решить задачу с автопроверкой на Python →

Куда дальше