[字符串]-7. 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。


解析:

反转整数最要注意的问题就是范围溢出问题。int 型的数值范围是 -2147483648 ~ 2147483647 如果要反转 1000000005 反转后为 5000000001 此时超过了int范围。
先进行范围判断。然后把输入的数据x从个位开始依次提出赋值给res,每一次循环,res会向左移一位,加上刚提出的此时x的个位,循环最后x/10,进行下一位的操作。当 x为0时结束循环,返回res。

Java代码

class Solution {
    public int reverse(int x) {
        int res=0;
        while(x!=0){
            if(Math.abs(res)>2147483647/10) return 0;
            res = res * 10 + x % 10;
            x /= 10;
        }
        return res;
    }
}

你可能感兴趣的:([字符串]-7. 反转整数)