Самая большая ошибка вашего кода - установить bucket=[]
(который является списком), а затем - целое число.
Кроме того, вам нужно сохранить самую длинную последовательность и текущую длину последовательности (инициализированную как1) и последнее увиденное значение, поэтому больше переменных, чем вы храните.
Каждый раз значение такое же, как и раньше, увеличьте счетчик.Если он отличается, сбросьте счетчик после проверки, не превышает ли он макс.В конце выполните макс тест снова, на случай, если самая длинная последовательность в конце (классическая ошибка)
примерно так:
seq = [2, 7, 4, 4, 2, 5, 2, 5, 10, 12, 5, 5, 5, 5, 6, 20, 1]
result=1
max_result=0
last_seen=seq[0]
for v in seq[1:]:
if v==last_seen:
result += 1
else:
if result > max_result:
max_result = result
last_seen = v
result = 1
# just in case the longest sequence would be at the end of your list...
if result > max_result:
max_result = result
print(max_result)
Когда вам наконец разрешат использовать батареи питона, используйте itertools.groupby
и вычислите максимальную длину последовательностей:
max(sum(1 for x in v) for _,v in itertools.groupby(seq))