Проверить последовательность на чередование знаков
Вводится последовательность целых чисел оканчивающиеся нулём. Нужно определить чередуются ли в ней знаки. Например 1 -2 6 -2 0 чередуются, а в последовательности 1 4 -2 -1 0 не чередуются. Написал вот тут чутка а как проверить на чередование понять не могу
a = list(map(int, input().split()))
for i in range(len(a)):
if . and a[-1] == 0:
print('Чередуются')
elif a[-1] != 0:
print('Не чередуются')
Ответы (2 шт):
Автор решения: Andrei
→ Ссылка
Так как ноль это не положительное и не отрицательное число предполагаю, что его можно считать и положительным и отрицательным. Тогда код такой:
numbers_1 = [1, -2, 6, -2, 0]
numbers_2 = [1, 4, -2, -1, 0]
numbers_3 = [0, 4, -2, 1, 0]
def numbersPars(numbers):
for i in range(len(numbers)):
if (numbers[i] < 0 and numbers[i+1] < 0) or (numbers[i] > 0 and numbers[i+1] > 0):
return 'Не чередуются'
return 'Чередуются'
print(numbersPars(numbers_1)) # Чередуются
print(numbersPars(numbers_2)) # Не чередуются
print(numbersPars(numbers_3)) # Чередуются
Автор решения: Nowhere Man
→ Ссылка
Ввод входных данных можно ограничить 0, затем просто проверить, что попарные произведения больше 0, т.е. имеют одинаковые знаки и не чередуются:
a = [i for i in iter(lambda x=iter([int(n) for n in input().split()]): next(x),0)]
print(a)
prev = None
for i in a:
if prev != None and i * prev > 0:
print("Не чередуются")
break
prev = i
else:
print("Чередуются")
1 -1 2 -2 -2 3 0
[1, -1, 2, -2, -2, 3]
Не чередуются
-2 1 -1 2 0 3
[-2, 1, -1, 2]
Чередуются