Задача нахождения последней цифры в строке часто встречается при обработке текстовых данных, анализе логов, парсинге документов и обработке пользовательского ввода. Рассмотрим несколько эффективных подходов к решению этой задачи.

Основные алгоритмы поиска последней цифры

Линейный поиск с конца (наиболее эффективный)

Оптимальный алгоритм с точки зрения производительности:

  1. Начать проверку с конца строки

  2. Поиск первого символа, являющегося цифрой

  3. Вернуть найденную цифру или None, если цифр нет


def last_digit(text):
    for char in reversed(text):
        if char.isdigit():
            return int(char)
    return None  # если цифры не было

Преимущества:

  • Работает за O(n) в худшем случае

  • Не использует дополнительную память

  • Находит результат сразу же при обнаружении

 Фильтрация цифр с выбором последней

Другой способ через создание списка:


def last_digit(text):
    digits = [int(i) for i in text if i.isdigit()]
    return digits[-1] if digits else None

Недостатки:

  • Создает временный список всех цифр

  • Менее эффективен по памяти для длинных строк