题目描述: 回文数
判断一个整数是否是回文数。不能使用辅助空间。
一些提示:
负整数可以是回文数吗?(例如 -1)
如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。
你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?
解题思路:
上篇颠倒整数里已经解决了溢出的问题,那么直接颠倒后比较就行了,若溢出,则不是回文数。
代码:
class Solution {
public:
bool isPalindrome(int x) {
int a[100], n= 0;
if(x < 0) return false;
int xx = x;
while(x != 0) {
a[n++] = x%10;
x = x / 10;
}
int ans = 0,t = 0;
for(int i = 0 ; i < n ; i ++) {
t = ans;
ans = t*10 + a[i];
if(t != ans/10) return false;
}
if(ans == xx) return true;
else return false;
}
};