描述
在不使用额外的内存空间的条件下判断一个整数是否是回文。
回文指逆序和正序完全相同。
输入:121
返回值:true
进阶: 空间复杂度 O(1),时间复杂度 O(len(n))
解题思路
方法一:使用字符串
class Solution {
public:
bool isPalindrome(int x) {
if(x<0) return false;
string s = to_string(x);
for(int i=0,j=s.size()-1;i<j;i++,j--){
if(s[i]!=s[j]) return false;
}
return true;
}
};
方法二:转换为数字
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)return false;//特判,若数字为负数则不是回文数字
int integer=x,y=0;
while(integer){//若数字为0则退出循环
y=y*10+integer%10;//得到逆序数字
integer/=10;//每次去掉最低位
}
return x==y;//比较是否是回文数
}
};