Palindrome Number

来源:互联网 发布:mac ae 2015 语言包 编辑:程序博客网 时间:2024/05/19 16:38

Determine whether an integer is a palindrome. Do this without extra space.

方法1:

用另一个 int 保存与原整数顺序相反的数,再判断两个整数是否相等。

代码如下:

class Solution {public:    bool isPalindrome(int x) {        if(x < 0)   // x为负数,返回false        {            return false;        }                int rev = 0;   // 保存与x相反的数         int y = x;        while(y)        {            rev = 10 * rev + y % 10;            y /= 10;        }                if(rev == x)        {            return true;        }        else        {            return false;        }            }};

 

方法2:

依次比较整数的最低位和最高位是否相等,然后不断缩小范围。

代码如下:

class Solution {public:    bool isPalindrome(int x) {        if(x < 0)        {            return false;        }                int base = 1;  // 用于求整数的最高位        while(x / base >= 10)        {            base *= 10;        }                while(x)        {            int left = x / base;            int right = x % 10;                        if(left != right)            {                return false;            }                        x %= base;  // 移除已经比较过的位            x /= 10;            base /= 100;        }                return true;    }};



 

0 0
原创粉丝点击