不可以采用回文字符串的方式
两种方法:
第一种方法是对先进行一个reverse 判断两个数字是否相等即可
第二种方法采用的是判断迭代首位和末尾的是否相等;出去首位% 末位/10 的技巧
博客中给出的是第二种方法
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)
return false;
int length=1;
int y = x;
while(x/10>0)
{
length=length*10;
x/=10;// 这个是判断最高位的情况,从而前面减少一个后面减少一个
}
while(y>0)
{
int a = y % 10; //末尾的数
int b = y / length;//首位
if(a !=b)
return false;
// 把首位去除,然后把末尾去除 首位去除x% length, 末尾去除x/10;
y = y % length;
y = y / 10 ;
length/=100; // 由于同时去除了两个位数
}
return true;
}
};