原题描述
Determine whether an integer is a palindrome. Do this without extra space.
算法
把输入的数颠倒一半,然后比较
需要注意的地方:
- 对于负数,直接判断为非回文数
- 对于非0的以0结尾的数,都是非回文数
- 对于回文数来说,若为偶数长度,则循环退出条件是x==sum, 若是奇数长度,则循环退出条件是x==sum/10,即x<sum。
C++代码
class Solution {
public:
bool isPalindrome(int x) {
if(x<0|| (x!=0 &&x%10==0)) return false;
int sum=0;
while(x>sum)
{
sum = sum*10+x%10;
x = x/10;
}
return (x==sum)||(x==sum/10);
}
};
Bug Free Procedure 从记事本直接写代码
2016.12.06 Bingo!!!一次性AC
2016.12.13 Bingo!!!一次性AC