LeetCode 9. Palindrom Number


原题描述

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



本作品由 Marvin.Cao 创作,采用 CC BY-NC-SA 3.0 许可协议 进行许可。

Comments