Reverse Integer

题目

Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321

分析

题目很简单,反转一个整型数,但是需要考虑到多种情况。

  1. 输入数据为正数,负数的情况。
  2. 反转后数据溢出,整型数据的范围如下:
    Integer.MAX_VALUE(2147483647)
    Integer.MIN_VALUE(-2147482648)
  3. 10以及100等数字的反转结果。
    根据LeetCode的测试用例,如果超出范围则return 0
    所以我们可以用long类型的变量存储每次计算的结果,如果数据溢出则return 0.

代码(Java)

1
2
3
4
5
6
7
8
9
10
11
public int reverse(int x) {
long result = 0;
while(x != 0){
result = result * 10 + x%10;
if(result < Integer.MIN_VALUE || result > Integer.MAX_VALUE){
return 0;
}
x = x / 10;
}
return (int) result;
}

在处理这类问题的时候,首先要考虑各种可能的测试用例,并对所有的测试用例进行处理,才能Accept.