leetcode - [7] Reverse Integer

2020/07/22

问题描述

Given a 32-bit signed integer, reverse digits of an integer.

举个例子:

Input: 123
Output: 321

解法1

Thanks [Y总]

这道题要注意两点:

第一,在Java中,一个负整数对正整数取模后,返回负数:

-5 / 3 = -2

第二点,注意整数溢出。

来看下简单的公式推导,如图:

负数同理。

来看下实现:

class Solution {
    public int reverse(int x) {
        
        int a = 0;
        while (x != 0){
            if (a > 0 && a > (Integer.MAX_VALUE - x % 10) / 10) return 0;
            if (a < 0 && a < (Integer.MIN_VALUE - x % 10) / 10) return 0;
            a = a * 10 + x % 10;
            x /= 10;
        }
        return a;
    }
}

Enjoy it !


一位喜欢提问、尝试的程序员

(转载本站文章请注明作者和出处 姚屹晨-yaoyichen

Post Directory