zoukankan      html  css  js  c++  java
  • 【LeetCode】9. Palindrome Number

    题目:

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

    提示:

    此题需要注意负数不是回文数。

    另外,我一开始的思路是把输入数字通过整除和取模运算把它倒转过来与原数字进行比较(不用考虑倒转过来的数字会不会溢出,因为输入的数字是int型,如果这个数字倒转之后产生了溢出,那么和原数字比较一定不相等,由此可判断出不是回文数)。

    后来在论坛中发现了一种更好的解决方案:即只倒转一半,如果输入数字的位数是偶数那就直接比较,如果位数是奇数那就将其中一个除以10再比较,这样做可以节省很多运算。

    代码:

    class Solution {
    public:
        bool isPalindrome(int x) {
            if (x == 0) return true;
            if (x < 0 || x % 10 == 0) return false;
            int rev = 0;
            while (x > rev) {
                rev = rev * 10 + x % 10;
                x /= 10;
            }
            return rev == x || rev / 10 == x;
        }
    };
  • 相关阅读:
    MOOK学习
    寒假学习计划
    三位影响深刻的老师
    软工第三次作业-结对作业
    2018软工实践第二次作业
    2018软工实践第一次作业
    简单的自我介绍
    福大软工1816 · 第一次作业
    课程作业八
    课程作业七
  • 原文地址:https://www.cnblogs.com/jdneo/p/4754554.html
Copyright © 2011-2022 走看看