Reverse Integer
题意:输入一个int,把这个int翻转输出。
解法:
也没什么复杂度可分析吧。
负数情况单独考虑,对于正数翻转后大于2^31-1的,负数翻转后小于-2^32的,直接返回MAX和MIN。
public class Solution145 {
public int reverse(int x) {
boolean label=false;
if (x==Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
if (x<0){
label=true;
x=-x;
}
if (!label){
if(!myCompare(x+"","2147483647")){
returnInteger.MAX_VALUE;
}
}else{
if(!myCompare(x+"","2147483648")){
returnInteger.MIN_VALUE;
}
}
int ans=0;
for (int i=(x+"").length()-1;i>=0;i--){
int temp=x%10;
x=x/10;
ans=ans*10+temp;
}
if (label){
ans=-ans;
}
return ans;
}
private boolean myCompare(String str, String number) {
String tempS="";
for (int i=0;i<str.length();i++){
tempS=str.charAt(i)+tempS;
}
str=tempS;
if (str.length()<10){
return true;
}
if (str.length()>10){
return false;
}
for(int i=0;i<10;i++){
if(str.charAt(i)>number.charAt(i)){
returnfalse;
}
if(str.charAt(i)<number.charAt(i)){
returntrue;
}
}
return true;
}
}