题目描述:
判断一个整数是否是回文数。不能使用辅助空间。
一些提示:
负整数可以是回文数吗?(例如 -1)
如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。
你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?
本题有一种比较通用的解决方式。
提示解析:
负数不为回文数,我在理解它给的提示的时候,在网上查看了一些别人的解析,有些观点觉得负数应该抛开正负号去判断,但是我在程序中包括正负性去判断的时候,提交错误,所以不能包含负数去考虑
不能将整型数转化为字符串去判断
代码:
class Solution {
public:
bool isPalindrome(int x) {
int s=0;
int x1=x;
if(x<0)
return false;
while(x)
{
int temp=s*10+x%10;
if(temp/10!=s) //此处为判断反转之后是否溢出
return false;
s=temp;
x/=10;
}
return (x1==s?true:false);
}
};