1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<string>

using namespace std;

class Solution{
public:
bool isPalindrome(int x){
string str = to_string(x);
int left =0, right = str.size() - 1;
while(left < right){
if(str[left] != str[right]){
return false;
}
left++;
right--;
}
return true;

}

};

算是最简单的一道题了

评论区看到了不转换成字符串的做法

1
2
3
4
5
6
7
8
9
bool isPalindrome(int x) {
if(x<0||x%10==0&&x!=0)return false;
int reversedHalf=0;
while(x>reversedHalf){
reversedHalf=reversedHalf*10+x%10;
x/=10;
}
return x==reversedHalf||x==reversedHalf/10;
}