美文网首页
[Leetcode] 7.Reverse Integer 翻转整

[Leetcode] 7.Reverse Integer 翻转整

作者: lijia069 | 来源:发表于2017-12-18 20:15 被阅读0次

    Related Topics
    [Math]

    Similar Questions
    [String to Integer (atoi)]

    题目:Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer).

    Example
    Given x = 123, return 321
    Given x = -123, return -321

    思路:通过不断求余得到最后一位数字,并迭代成权数10,使其位数增高。本题主要是要考虑溢出的问题。解决溢出问题有以下办法:

    • 使用long类型的对象存储翻转后的结果,直接判断是否超出范围;
    • 仍使用int类型存储,在乘10之前进行判断;
    • 当将溢出数据赋给int对象时,高位会丢失,因此如果超出了范围,其除以10的结果就不会跟之前的结果一致,根据此判断。

    java解法2

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

    java解法3

    class Solution {
        public int reverse(int x) {
            int res=0,t;
            while(x!=0) {
                t=res*10+x%10;
                if(t/10!=res) return 0;
                res=t;
                x=x/10;
            }
            return res;
        }
    }
    

    相关文章

      网友评论

          本文标题:[Leetcode] 7.Reverse Integer 翻转整

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