原题:Determine whether an integer is a palindrome. Do this without extra space.
解题思路:
1.回文数即正着读和反着读结果相同的数,所以,负数不是回文数;
2.个位数都是回文数;
3.对于一个数,想要确定它是否为回文数,可以先得到该数的颠倒位置的数(见LeetCode第七题),再判断两数是否相等,若相等,则为回文数;
Java代码
public class Solution {
public boolean isPalindrome(int x) {
if(x<0){
return false;
}
if(x/10==0){
return true;
}
int result=0;
int remaining=x;
int tail=0;
while(remaining!=0){
tail=remaining%10;
remaining=remaining/10;
result=result*10+tail; //result为<span style="color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 30px;">颠倒位置的数;</span>
}
if(result==x){
return true;
}else{
return false;
}
}
}
最开始采用了字符串的方法,现做出一些修改。