Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
对于这道题目,如果超出整数限制,那么返回0
public class Solution {
public int reverse(int x) {
int a=Math.abs(x);
long b=0; //定义为long,不然翻转后存在整数溢出的情况
while(a>0){
b=b*10+a%10;
a/=10;
}
if(x<0)
b*=(-1);
if(b>Integer.MAX_VALUE || b<Integer.MIN_VALUE) return 0;//超出整数范围时,返回0
return (int)b; //把long型强制转换为int
}
}
http://blog.csdn.net/linhuanmars/article/details/20024837
public class Solution {
public int reverse(int x) {
if(x==Integer.MIN_VALUE)
return 0;
int num = Math.abs(x);
int res = 0;
while(num!=0){
if(res>(Integer.MAX_VALUE-num%10)/10) //我之前这样写的时候,竟然没写出来,我的智商呢,鄙视一下自己
return 0;
res = res*10+num%10;
num /= 10;
}
return x>0?res:-res;
}
}