整数反转

作者: 历十九喵喵喵 | 来源:发表于2020-10-05 22:30 被阅读0次

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123

    输出: 321

     示例 2:

    输入: -123

    输出: -321

    示例 3:

    输入: 120

    输出: 21

    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    class Solution {

        public int reverse(int x) {

            int res = 0;

            while(x != 0){

                int temp = x%10;

                int newres = res*10 + temp;

                if((newres-temp)/10 != res)

                    return 0;

                res=newres;

                x=x/10;

            }

            return res;

        }

    }

    解题思路:

    把尾数一个一个取出来然后拼接在一起,通过求余可以把尾数取出来。循环条件是 x != 0;

    第二个是判断溢出, 通过反求原来的数是否和反转的数相等就可以了。

    看一下大佬的图解会比较清晰:

    链接:整数反转

    相关文章

      网友评论

        本文标题:整数反转

        本文链接:https://www.haomeiwen.com/subject/rthzuktx.html