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

    文章目录如下

    (1)自己的思路

    (2)自己的代码

    (3)别人的思路

    (4)别人的代码

    (5)对比自己的不足之处

    (1)自己的思路

    又碰见回文数了,不过这次要简单很多,因为这次仅仅是判断一个数字x是不是回文数,那么只需要将一个整数进行调转即可,然后保存为一个新的数字r,最后比较x与r是否相等。期间牵扯到的取余,除法运算想必看过代码之后就会理解,不多说,直接贴代码

    (2)自己的代码

    class Solution {
    public:
        bool isPalindrome(int x) {
            
            int tmpx = x;
            int tmp = 0;
            
            while(tmpx!=0)
            {
                tmp = tmp*10 + (tmpx%10);
                tmpx = tmpx/10;
            }
            
            return (tmp==x);
        }
    };

    (3)别人的思路

    每次比较整数x的最高位与最低位,然后将x进行拆解,去掉x原有的最高位与最低位,然后继续进行比较,如果有一次不满足情况,那么便判断不是回文数,否则直到比较结束后,返回该数字是回文数。

    (4)别人的代码

    class Solution {
    public:
        bool isPalindrome(int x) {
            if (x < 0) return false;
            int d = 1; // divisor
            while (x / d >= 10) d *= 10;
    
            while (x > 0) {
                int q = x / d;  // quotient
                int r = x % 10;   // remainder
                if (q != r) return false;
                x = x % d / 10;
                d /= 100;
            }
            return true;
        }
    };

    (5)对比自己的不足之处

    我是根据原数x构造了另外一个数字r,其中r的顺序与x的顺序相反。别人的思路只在x上操作,一次比较数的开始与末尾的数字是否相等。

    其中我这种方法有一个致命的缺点,就是当整数特别大的时候(超出了int范围),在构造r的过程中很容易出错,但是别人的方法却没有这种问题,所以再遇到这种问题,尽量在同一个数上进行操作,以此来避免数值范围的问题!

  • 相关阅读:
    java 14 -7 Date
    java 14 -6 BigInteger和BigDecimal
    java 14 -5 System类
    java14-4 Pattern和Matcher类的使用
    java 14-3 正则表达式的分割
    转:StringBuilder与StringBuffer的区别(转)
    kafka之config/server.properties配置参数说明
    Kafka内核理解:消息的收集/消费机制
    kafka删除topic及其相关数据
    kafka使用问题解决
  • 原文地址:https://www.cnblogs.com/magicy/p/5344545.html
Copyright © 2011-2022 走看看