题目:
Determine whether an integer is a palindrome. Do this without extra space.
想法:
题目说不能有额外的空间,其实意思是空间是
O(1)
的。所以不能将int类型转换为string类型再判断。我们的方案是每次首尾比较用div控制,还有就是负数不是回文数。
解答:
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0)
return false;
int div = 1;
while(x/div >= 10){
div *= 10;
}
while(x){
int l = x / div;
int r = x % 10;
if (l != r)
return false;
x = (x % div) / 10;
div /= 100;
}
return true;
}
};