努橙刷题编

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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 hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

 

class Solution {
    public int reverse(int x) {
        long result = 0;
        boolean isPositive = x < 0;
        x = isPositive ? -x : x;
        while (x > 0) {
            result = result * 10 + x % 10;
            x = x / 10;
        }
        if (result > Integer.MAX_VALUE) {
            return 0;
        }
        result = isPositive ? -result : result;
        return (int)result;
    }
}

 

Failed case: Shouldn't use int to hold result
Input:
1534236469
Output:
1056389759
Expected:
0

posted on 2017-11-08 01:22  努橙  阅读(271)  评论(0编辑  收藏  举报