Это 25-й день моего участия в Gengwen Challenge.Подробности о мероприятии:Обновить вызов
Для лучшего будущего придерживайтесь чистки зубовLeetCode!
тема
Учитывая 32-битное целое число со знаком x , вернуть результат инвертирования числовых частей x .
Возвращает 0, если инвертированное целое превышает диапазон [−231, 231 − 1] для 32-разрядных целых чисел со знаком.
Предположим, что среда не позволяет хранить 64-битные целые числа (со знаком или без знака).
Пример 1:
输入:x = 123
输出:321
Пример 2:
输入:x = -123
输出:-321
Пример 3:
输入:x = 120
输出:21
Пример 4:
输入:x = 0
输出:0
намекать:
-231 <= x <= 231 - 1
Решение 1 — Математика
Идеи решения проблем
Получай каждый разпоследнюю цифру и добавить к другой цифрепо последней цифре:
# 获取最后一位
last = x % 10
x = x / 10
# 追加到 rev 的最后一位上
rev = rev * 10 + last
код
func reverse(x int) (rev int) {
for x != 0 {
if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {
return 0
}
digit := x % 10
x /= 10
rev = rev*10 + digit
}
return
}
Результаты
执行用时:0 ms,在所有 Go 提交中击败了 100.00% 的用户
内存消耗:2.1 MB,在所有 Go 提交中击败了 63.53% 的用户
Анализ сложности
- временная сложность:. Количество переворотовдесятичные цифры.
- Сложность пространства: