
首先我们可以将整数转为字符串,然后对字符串进行判断。
class Solution
{
public:
bool isPalindrome(int x)
{
bool result;
if (x < 0)
{
return false;
}
stringstream ss;
ss << x;
string str, reversedStr;
ss >> str;
int strSize = str.size();
for (int index = str.size() - 1; index >= 0; index--)
{
reversedStr.push_back(str[index]);
}
result = str == reversedStr;
return result;
}
};
另外一种数学解法。
class Solution
{
public:
bool isPalindrome(int x)
{
bool result;
//避免例如x = 110的情况
if (x < 0 || (x != 0 && x % 10 == 0))
{
return false;
}
int reverseNumber = 0;
//考虑一下为什么x = 21时,不会出错
while (x > reverseNumber)
{
reverseNumber = reverseNumber * 10 + x % 10;
x = x / 10;
}
//分别是偶数位和奇数位的情况
result = (x == reverseNumber) || (x == reverseNumber / 10);
return result;
}
};
整数回文判断算法
本文介绍了两种判断整数是否为回文数的方法:一种是通过将整数转换为字符串并比较其正序与倒序;另一种是数学解法,通过对整数进行反转并与原数部分或全部比较。
1572

被折叠的 条评论
为什么被折叠?



