1. 题目描述
判断一个整数是否是回文数
2. 题解
解法一:使用字符串
将给定的整数转成字符串,只需要这个字符串正序和逆序是否一样即可
无需考虑正负号和翻转整数溢出问题
class Solution {
public:
bool isPalindrome(int x) {
string s = to_string(x);
string rev = s;
reverse(rev.begin(), rev.end());
return s == rev;
}
};
解法二:将整数逆序输出
注意循环结束的条件 这样可以防止反转整数时溢出:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0|| (x!=0 &&x%10==0)) return false;
int sum=0;
while(x>sum)//* nice!!!
{
sum = sum*10+x%10;
x = x/10;
}
return (x==sum)||(x==sum/10);
}
};