Скользящие числа: задача на Python

1657
Скользящие числа: задача на Python
Скользящие числа: задача на Python

Напишите функцию, принимающую число и проверяющую, является ли оно «скользящим». Скользящее число — такое число, соседние цифры которого отличаются между собой на единицу.

Примеры

is_slidey(123454321) ➞ True

is_slidey(54345) ➞ True

is_slidey(987654321) ➞ True

is_slidey(1123) ➞ False

is_slidey(1357) ➞ False

is_slidey(1) ➞ True

Обратите внимание на примеры 4 и 5. Если в числе идут подряд одинаковые цифры или какая-то цифра в ряду пропущена, такое число мы не считаем скользящим.

Если число записывается одной цифрой, оно считается скользящим.

Варианты решения

def is_slidey(n):
    n = str(n)
    return all(abs(int(n[i]) - int(n[i+1])) == 1 for i in range(len(n) - 1))
is_slidey = f = lambda n: n < 10 or abs(n // 10 % 10 - n % 10) == 1 and f(n // 10)