数字转为字符串,前后相同
class Solution {
public:
bool isPalindrome(int x) {
string s=to_string(x);
int n=s.length();
for(int i=0;i<n/2;i++){
if(s[i]!=s[n-i-1])return false;
}
return true;
}
};
数字取整取余,前后判断
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)return false;
int div=1;
while(x/div>=10){
div*=10;
}
while(x){
int left=x/div;
int right=x%10;
if(left!=right)return false;
x=x%div;
x=x/10;
div/=100;
}
return true;
}
};
反转后段,判断相同
class Solution {
public:
bool isPalindrome(int x) {
if(x==0)return true;
if(x<0)return false;
if(x%10==0)return false;
int n=0;
while(n<x){
n*=10;
n+=x%10;
x/=10;
}
if(x==n||x==(n/10))return true;
return false;
}
};