Обратный порядок цифр числа

Переверните строку модуля числа, преобразуйте обратно в int и восстановите знак. Концевые нули исходного числа исчезнут.

Короткий ответ

Что ответить на собеседовании

Переверните строку модуля числа, преобразуйте обратно в int и восстановите знак. Концевые нули исходного числа исчезнут.

Подробный разбор

Ответ с пояснениями

Условие

Дано целое число, например 123. Необходимо получить число с переставленными в обратном порядке цифрами (в примере получится 321). Можно использовать любые удобные способы преобразования, включая работу со строковым представлением числа.

Ответ

Переверните строку модуля числа, преобразуйте обратно в int и восстановите знак. Концевые нули исходного числа исчезнут.

def reverse_digits(number):
    sign = -1 if number < 0 else 1
    return sign * int(str(abs(number))[::-1])

assert reverse_digits(123) == 321
assert reverse_digits(-120) == -21
assert reverse_digits(0) == 0

Переворачивать строку '-120' целиком нельзя: получится '021-', что не является корректным целым литералом. Знак обрабатывается отдельно.

Если требуется сохранить ведущие нули результата, возвращаемый тип должен быть строкой, а не числом. Для d цифр строковый способ использует O(d) памяти. Альтернатива без строк — повторять деление на 10 и накапливать результат.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее