У меня есть некоторый код Python, над которым я работал несколько дней, и я думаю, что близок к тому, чтобы выяснить это, но некоторые пройденные тестовые значения не дают правильного ответа. Цель состоит в том, чтобы дать список 0 и 1, представляющих монеты. Программа определит максимальное количество смежных монет, которое может быть достигнуто после подбрасывания только одной монеты.
Например, для данного массива A, состоящего из шести чисел:
A = [1, 1, 0, 1, 0, 0]
, функция возвращает 4 Приведенный ниже код работает с этим примером, но если я ввожу список, такой как
A = [0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1]
, я получаю 9 вместо того, что должно быть 7. Я не уверен, что именно не так, но любая помощь ценится.
def solution(A):
n = len(A)
result = 0
for i in range(n - 1):
if (A[i + 1] == A[i]):
result = result + 1
r = -1
for i in range(n):
count = 0
if (i > 0):
if (A[i - 1] != A[i]):
count = count + 1
else:
count = count - 1
if (i < n - 1):
if (A[i + 1] != A[i]):
count = count + 1
else:
count = count - 1
r = max(r, count)
return result + r