题目描述
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
样例
输入:x = 121
输出:true
算法1
(字符串)
将数字变成字符串,比较和其翻转是否相等
如果小于0,直接返回假
C++ 代码
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0) return false;
string s = to_string(x);
reverse(s.begin(), s.end());
return s == to_string(x);
}
};
算法2
整数翻转
用一个long long的数接收翻转的数,最后比较
C++ 代码
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0) return false;
int y = x;
long long ans = 0;
while(x ) {
ans = ans * 10 + x % 10;
x /= 10;
}
return ans == y;
}
};