Кодинг-марафон. Задача 7.
Напишите функцию, которая будет возвращать True, если строка, являющаяся аргументом функции, содержит возрастающие И последовательные числа. Например, ‘123’ (1-2-3) или ‘101112’ (10-11-12).
Примечания
- Функция должна возвращать (не печатать!) только True\False, она не должна бросать исключений.
- Предполагается, что строка-аргумент никогда не пустая и всегда содержит минимум 2 числа, например ’10’ — валидная строка.
- Строка-аргумент будет содержать только числа.
Сигнатура — def ascending(value: str) -> bool:
Примеры
ascending("232425") ➞ True, поскольку строку можно представить как 23, 24, 25 (числа следуют друг за другом по возрастанию) ascending("2324256") ➞ False, так как шестерка в конце ломает возрастающий ряд ascending("444445") ➞ True, поскольку строку можно представить как 444 и 445.
Решение
def ascending(value: str) -> bool: length = len(value) for i in range(length // 2): next_value = value[:i + 1] int_value = int(next_value) while len(next_value) < length: int_value += 1 next_value = f'{next_value}{int_value}' if next_value == value: return True return False