Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
Subscribe to see which companies asked this question.
题目看起来很简单,最简单的思路就是把这个整数转化成String类型,然后反转就可以了。但是如果不转化,可能有一个非常巧妙的思路,核心代码就是几行
while(x!=0){
result = result*10+x%10;
x/=10;
}
这里一看不太好理解,例如给出的数字是 1234567
第一次执行结果 result的值就是7 x的结果是123456
第二次执行结果 result的值就是76 x的结果是12345
。。。。。
最后实现反转 完整代码:
public int reverse(int x) {
if(x==Integer.MIN_VALUE)
return 0;
int result = 0;
x=Math.abs(x);
while(x!=0){
if(result*10+x%10>Integer.MAX_VALUE)
return 0;
result = result*10+x%10;
x/=10;
}
return result;
}
算法真奇妙。。。。