Напишите числа из-за которых не будет работать мой код
Задание: На вход программы дана последовательность, состоящая из натуральных чисел и завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. Ответ выведите на экран.
Пример ввода:
1
7
7
9
1
0
Пример вывода:
2
Вот мой код:
n=int(input())
h=n
k=0
if n==0:
print(0)
else:
a_list=[]
s_list=[]
while n!=0:
n=int(input())
if h==n:
a_list.append(n)
h=n
h=n
s_list=list(set(a_list))
v=len(s_list)
p_list=[]
t=0
z=0
for i in range (0, v):
t=s_list[i]
z=a_list.count(t)
p_list.append(z)
w=p_list
x=max(w, default=0)
if x==0:
print(0)
else:
print(x+1)
Робот говорит, что есть ответ(ы), которые не совпадают. Напишите, пожалуйста, из-за каких чисел у меня не получится ответ. Заранее извинюсь за мой код, я только учусь. Прошу указать только числа, а я, в свою очередь, попытаюсь самостоятельно исправить код. Заранее спасибо!
Ответы (1 шт):
Ну, например, вот такая последовательность:
1 2 2 1 2 2 1 0
Ваш код выдаст 3, хотя в этой последовательности нигде нет трёх одинаковых чисел подряд.
Вообще, сам выбранный подход не оптимален.
При проходе по последовательности достаточно запоминать два числа: длину текущей последовательности, и длину максимальной последовательности среди прошлых. И когда текщая последовательность заканчивается, просто сравниваете её длину с максимальной и большая среди них будет новой максимальной.