老生常谈的反转问题。leetcode提出的具体要求是:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
单单只看这个是十分简单的,但是他提出了进一步的思考或者一些可能会被忽略的漏洞。其中一个是数值超过边界的问题。java中的int类型范围是从-2147483548到2147483547之间。超过这个范围的数在输入时就会被报错,但是翻转后要是超出了这个范围,就是我们需要考虑的事情了。
代码总体比较简单,如下:
public class Solution {
public int reverse(int x) {
int res=0;
while(x!=0)
{
res = res*10+x%10;
x=x/10;
if(Math.abs(res)>214748364&&x!=0) //判断翻转后的值是否会越界而进行判断。
{
res = 0;
break;
}
}
return res;
}
}