对于数字操作,能不转换的就别转换了。
数字操作版本
class Solution {
public int reverse(int x) {
int n = 0;
while (x!=0){
if (n!=n*10/10){return 0;}
n=n*10+x%10;
x=x/10;
}
return n;
}
}
字符操作的版本
public int reverse(int x) {
if(x>=0){
String max = ("2147483647") ;
StringBuilder dig = new StringBuilder(x+"");
dig.reverse();
if(max.length()==dig.length()){
return max.compareTo(dig.toString())>0?Integer.parseInt(dig.toString()):0;
}else {
return Integer.parseInt(dig.toString());
}
}else{
String max ="2147483648";
x=(x==-2147483648)?-x-1:-x;
StringBuilder dig = new StringBuilder(x+"");
dig.reverse();
if(max.length()==dig.length()){
return max.compareTo(dig.toString())>0?-Integer.parseInt(dig.toString()):0;
}else {
return -Integer.parseInt(dig.toString());
}
}
}