题目是判断一个integer是否是回文数,我的做法是转成String来判断,但是不知道String算不算额外空间,如果不让用可以用除法来找到每一位的数字进行判断
public class Solution {
public boolean isPalindrome(int x) {
String y=x+"";
for(int i=0, j=y.length()-1-i;i<y.length();i++,j--){
if(i<=j){
if(y.charAt(i)!=y.charAt(j))
return false;
}else{
return true;
}
}
return true;
}
}
Update 2015/08/29: 这道题上面的方法不合适,最好的方法是不用string,可以先翻转然后比较
public int reverse(int x) {
int rst = 0;
while(x != 0) {
rst = rst * 10 + x % 10;
x = x / 10;
}
return rst;
}
public boolean isPalindrome(int x) {
if(x < 0) {
return false;
}
return x == reverse(x);
}