Задача нахождения последней цифры в строке часто встречается при обработке текстовых данных, анализе логов, парсинге документов и обработке пользовательского ввода. Рассмотрим несколько эффективных подходов к решению этой задачи.
Основные алгоритмы поиска последней цифры
Линейный поиск с конца (наиболее эффективный)
Оптимальный алгоритм с точки зрения производительности:
Начать проверку с конца строки
Поиск первого символа, являющегося цифрой
Вернуть найденную цифру или 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
Недостатки:
Создает временный список всех цифр
Менее эффективен по памяти для длинных строк