力扣7:整数反转

崩天的勾玉 2021年5月31日12:30:05
评论
60 425字

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。
 

示例 1:

输入:x = 123
输出:321
示例 2:

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer

class Solution {
    public int reverse(int x) {
        long n = 0;
        //每次循环:n记录n加上x最后一位,x取除最后一位的部分,这样迭代从后往前获取位数,填入n
        while(x != 0){
            n = n*10 + x%10;
            x = x/10;
        }
        return (int)n==n? (int)n:0;
    }
}

return (int)n==n? (int)n:0;是对数值溢出作判断,n首先是long类型,能存储超出int的值,如果转为int时发生数据丢失和n不相等那么就是溢出,就返回0.

您可能感兴趣的文章

版权:文章来自凡蜕博客,转载请带上地址。微信公众号: 『崩天的勾玉』
匿名

发表评论

匿名网友