回文数


给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则返回 false。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

提示:-231 <= x <= 231 - 1

1.整数反转

利用整数反转的思想,来处理回文数字问题

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0) return false;
long long ans = 0;
long long raw = x;
while (x) {
ans = ans * 10 + x % 10;
x /= 10;
}
return raw == ans;
}
};

2.字符串反转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0) return false;
string raw = to_string(x);
string ans = raw;
for (int i = 0, j = raw.length() - 1; i < j; ++i, --j) {
char c = ans[i];
ans[i] = ans[j];
ans[j] = c;
}
return raw == ans;
}
};