помощь в решении задачи
Палиндром – это строка, которая одинаково читается как слева направо, так и справа налево.
Дан набор из n строк (1 ≤ n ≤ 105). Найдите среди них такие пары, которые при конкатенации дают палиндром. Более формально, найдите все пары (i, j) такие, что i ≠ j и строка si+sj является палиндромом.
Выведите все упорядоченные пары индексов (нумерация с единицы).
Формат ввода В первой строке дано целое число n (1 ≤ n ≤ 100 000) — количество строк.
Далее в n строках записано по одному слову. Длина каждого слова от 1 до 10. Слова состоят из маленьких букв английского алфавита.
Пример 1.
Ввод:
4
a
abbaa
bba
abb
Вывод:
1 2
1 3
2 3
3 4
4 1
4 3
Как вычислять палиндром мне ясно, а как ввод данных выполнить в питоне? Не знаю, как правильно начать?
Может подскажет кто?
Ответы (1 шт):
Так пойдёт?
n = int(input()) # количество строк, которое будет введено
strokes = [] # все введённые строки
match = [] # все совпадения
for i in range(n):
stroke = input() # строка
strokes.append(stroke)
for i in range(n):
for j in range(i + 1):
if i != j:
concat = strokes[i] + strokes[j]
if concat == concat[::-1]:
match.append([i+1, j+1])
for i in range(len(match)):
print(match[i][0], match[i][1], sep = ", ")