LeetCode 9:
思路1:转化为char[]数组,然后两个指针分别在开头与结尾出,分别向后,向前移动。
思路2:利用一个辅助变量help,得到最高位为1,其余位置为0的数。[ 1,10,100,1000,10000 ]。同时要防止help溢出。每次取n的最高位与最低位进行比较。
public boolean isPalindrome(int x) { // 负数就不是回文数啦??!
if(x>=0){
int help=1;
while(x/help>=10){ // 利用辅助变量help得到一个 当前数的最高位1,其余位为0的数。
help*=10;
}
while(x!=0){
if(x/help!=x%10){
return false;
}
x=(x%help)/10;
help/=100;
}
return true;
}else{
return false;
}
}