Leetcode第七题——数的反转

要求:

  

 

     此题需要注意两个条件:

      1.正负号

      2.溢出

    如果溢出,则认为有两种情况:1.达到最小值,则返回0;

      2.n*10发生越界,则返回0

    思路:结果数=原来的余数*10^原来位数+......+原来的最大位数

      结果数*10,原来数除以10取余

    代码:

    

class Solution {
     public int reverse(int x){
        if(x==Integer.MIN_VALUE) return 0;
        int neg=x<0?-1:1;
        x*=neg;
        int ret=0;
        while(x>0){
            int n=ret;
            n*=10;
            n+=x%10;
            x/=10;
            if(n/10!=ret){
                return 0;
            }
            ret=n;
        }
        return ret*=neg;
            
    }
}

 

posted @ 2020-08-26 10:13  huxiaojie  阅读(112)  评论(0编辑  收藏  举报