Что нужно сделать
Последовательность чисел называется симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:
1 2 3 4 5 4 3 2 1
1 2 1 2 2 1 2 1
Пользователь вводит последовательность из N чисел. Напишите программу, которая определяет, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.
Пример 1:
Кол-во чисел: 5
Число: 1
Число: 2
Число: 1
Число: 2
Число: 2
Последовательность: [1, 2, 1, 2, 2]
Нужно приписать чисел: 3
Сами числа: [1, 2, 1]
Пример 2:
Кол-во чисел: 5
Число: 1
Число: 2
Число: 3
Число: 4
Число: 5
Последовательность: [1, 2, 3, 4, 5]
Нужно приписать чисел: 4
Сами числа: [4, 3, 2, 1]
Что оценивается
- Результат вычислений корректен.
- Input содержит корректные приглашения для ввода.
- Формат вывода соответствует примеру.
- Переменные и функции имеют значащие имена, не только a, b, c, d
nums = int(input('Введите количество чисел: '))
num_list = []
first_list = []
second_list = []
for i in range(nums):
num = int(input(f'Число {i + 1}: '))
num_list.append(num)
first_list.extend(num_list)
for j in range(len(num_list)):
half = len(num_list) // 2
if len(num_list) % 2 != 0:
if num_list[:half] == num_list[half + 1:]:
break
else:
if num_list[:half] == num_list[:half-1:-1]:
break
num_list.append(num_list[j])
second_list.append(num_list[j])
print(f'''\nПоследовательность: {first_list}
Нужно приписать чисел: {len(second_list)}
Сами числа: {second_list}''')