个人思路总结:
注意,当该数是负数时,肯定不是回文数,因此只需对正数进行判断即可。
我的思路是建立一个vector,依次将各数字存放进vector内,然后对vector从左到右和从右到左一起往中间遍历,每次判断两个元素是否相等,若相等则继续两头一起往中间走,直至左边index大于右边index,则遍历结束。如果均相等,则是回文数。如果有一个不相等,则不是回文数。
代码如下:
class Solution {
public:
bool isPalindrome(int x) {
vector<int> vec;
if(x<0)
{
return false;
}
while(x!=0)
{
vec.push_back(x%10);
x /= 10;
}
for(int i=0,j=vec.size()-1;i<=j;i++,j--)
{
if(vec[i]!=vec[j])
return false;
}
return true;
}
};