leetcode 7. Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

 

看似简单实则tricky的一道题。最关键的是#当result溢出时该怎么return 0#

负数不需要单独考虑。

class Solution {
    public int reverse(int x) {
        int r=0,r1=0;
       while(x != 0){
            r1 = r*10 + x%10;
            if((r1-x%10)/10 != r) return 0; //关键!
            r = r1;
            x = x/10;
        }
        return r;
    }
}

 

posted @ 2019-01-25 20:32  JamieLiu  阅读(84)  评论(0编辑  收藏  举报