题目链接:
https://leetcode.com/problems/palindrome-number/description/
题目描述:
Determine whether an integer is a palindrome. Do this without extra space.
判断一个整数是否为回文整数。
题解:
先排除复数和非0的10的倍数。
随后从该整数的低位出发,通过%10的方法提取该位,加到一个临时变量revertedNumber上,并将原整数x/10去掉该位。
重复执行该步骤直到revertedNumber>=x
最后比较x和revertedNumber是否相等或revertedNumber是否比x多一位来判断原整数是否为回文整数。
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int revertedNumber = 0;
while(x > revertedNumber) {
revertedNumber = revertedNumber * 10 + x % 10;
x /= 10;
}
return (x == revertedNumber || x == revertedNumber/10);
}
};