Leetcode第7题 反转数字 Reverse Integer

236 阅读1分钟

题目描述:给定了一个32bit长度的int类型整数,将这个数翻转过来,返回一个整数,这个题比较简单,唯一要注意的是int类型的取值返回,数字翻转之后可能会超过int的取值范围,超过范围之后,直接返回0可以。

以下解法

class Solution {
    public int reverse(int x) {
        //一个遍历用于接收结果
        int result = 0;
        while(x != 0){
            //进行取模运算,获取到当前x的个位值
            int k = x%10;
            //将K和当前的结果相加,注意result要*10,就是进行反转操作
            int l = result*10+k;
            //判断下当前L/10和result的关系
            //如果不相等,说明result*10+k已经超过了int的取值范围
            if(l/10 != result){
                return 0;
            }
            //如果相等,将结果赋值给result
            result=l;
            //x/10,就相当x往右挪一下(不是位运算)
            x=x/10;
        }
        return result;    
    }
}

运行结果: Runtime: 2 ms, faster than 64.37% of Java online submissions for Reverse Integer.

Memory Usage: 42 MB, less than 6.08% of Java online submissions for Reverse Integer.