zoukankan      html  css  js  c++  java
  • 9.回文数

    ![image-20200610185502812](D:1TyporaLeetCode9.回文数.assetsimage-20200610185502812.png

    转字符串 对称比较

    思路

    • 负数一定不是回文数
    • 将数字num转换为字符串s,根据回文数的对称特点,逐次比较(s.length/2次)

    代码

    //10ms 
    public static boolean isPalindrome(int x) {
            if (x < 0) return false;
            String s = String.valueOf(x);
            int len = s.length();
            for (int i = 0; i < len / 2; i++) {
                if ((s.charAt(i) ^ s.charAt(len - 1 - i)) != 0) {
                    return false;
                }
            }
            return true;
        }
    

    进阶

    思路

    • 从低位往高位截取,直到截取部分的值>=剩余部分的值,具体看代码好理解。
    • 比较两部分值是否相同。
    • 注意特殊情况,当num%10==0时一定不是回文数。

    代码

    //9ms
    public static boolean isPalindrome(int x){
        if(x<0||(x%10==0&&x!=0)) return false;
        int revNum=0;
        while(x>revNum){
            revNum=revNum*10+x%10;
            x/=10;
        }
        return x==revNum||x==revNum/10;
    }
    

    参考链接:

    官方题解

  • 相关阅读:
    推箱子
    为textarea增加maxlength属性(转)
    validate
    keypress
    Knockout
    &amp; replace &
    银联参数
    chinapay
    model binding
    JSON.stringify
  • 原文地址:https://www.cnblogs.com/yh-simon/p/13087961.html
Copyright © 2011-2022 走看看