Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2023 00:07:40

Anisim
Зарегистрирован: 2022-09-23
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка последовательности

Ваще не доходит в бошку как реализовать это условие?

1. Пробегаюсь циклом for по переданным целым числам\
2. Далее нужно как я понимаю условием проверить не является ли следующее число больше на единицу? если не то False

Реализуйте функцию is_sequence(), которая проверяет, является ли переданная последовательность целых чисел возрастающей непрерывно \

Офлайн

#2 Фев. 21, 2023 11:22:27

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Проверка последовательности

  
def is_sequence(items):
    for i in range(len(items)):
        if i + 1 ==len(items):
            break
        print(f'{items[i+1]} - {items[i]} == {items[i+1] - items[i]}')
        if items[i+1] - items[i] != 1:
            return False
    return True
r = is_sequence([-3, -2, -1, 0, 1, 2, 3, 4, 5])
print(r)

-2 - -3 == 1
-1 - -2 == 1
0 - -1 == 1
1 - 0 == 1
2 - 1 == 1
3 - 2 == 1
4 - 3 == 1
5 - 4 == 1
True

Офлайн

#3 Фев. 21, 2023 13:27:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9865
Репутация: +  853  -
Профиль   Отправить e-mail  

Проверка последовательности

Anisim
Реализуйте функцию is_sequence(), которая проверяет, является ли переданная последовательность целых чисел возрастающей непрерывно \
  
>>> def is_ascending(seq):
...     prev_elem = None
...     for elem in seq:
...         if prev_elem is None or prev_elem < elem:
...             prev_elem = elem
...         else:
...             return False
...     return True
... 
>>> is_ascending([])
True
>>> is_ascending([1])
True
>>> is_ascending([1, 2])
True
>>> is_ascending([1, 2, 3])
True
>>> is_ascending([1, 4, 8])
True
>>> is_ascending([1, 1, 2])
False
>>> is_ascending([1, 2, 2])
False
>>>

Anisim
2. Далее нужно как я понимаю условием проверить не является ли следующее число больше на единицу?
Единица тут при чём?
Anisim
последовательность целых чисел возрастающей непрерывно
Возрастает непрерывно - это значит, что для любых a и b, принадлежащих последовательности, где a имеет меньший номер, чем номер b, a < b.

xam1816
  
for i in range(len(items)):
А если их там сто тысяч или миллион? Да и не всегда можно определить длину. Там может быть подан итератор или генератор, у них нет длины.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version