Задача понятна: дано число N и N строк. Нужно вывести эти строки в обратном порядке, то есть последнее слово — первым, предпоследнее — вторым и т.д.
Пошаговое объяснение
- Считать число N.
- Прочитать N строк и сохранить их в список/массив.
- Вывести элементы списка в обратном порядке, по одному на новой строке.
Сложность
- Временная: O(N), потому что нужно во всех элементах пройтись один раз при выводе.
- Память: O(N), для хранения всех N строк.
Пример
Ввод:
5
сеанс
культура
вариант
пирамида
истопник
Вывод:
истопник
пирамида
вариант
культура
сеанс
Код на Python (простой и понятный)
import sys
def main():
data = sys.stdin.read().split()
if not data:
return
n = int(data[0])
strings = data[1:1+n]
for s in reversed(strings):
print(s)
if name == "main":
main()
Альтернативный вариант на C++ (для тех, кто предпочитает C++)
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
if (!(cin >> n)) return 0;
vector<string> a(n);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = n - 1; i >= 0; --i) {
cout << a[i] << '\n';
}
return 0;
}
Если хочешь, могу адаптировать решение под другой язык программирования или учесть особые требования к вводимым строкам (например, строки с пробелами).