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

    判断一个整数是否是回文数。

    题解

    普通解法:将整数转为字符串,然后对字符串做判断。

    ///简单粗暴,看看就行
    class Solution {
        public boolean isPalindrome(int x) {
            String reversedStr = (new StringBuilder(x + "")).reverse().toString();
            return (x + "").equals(reversedStr);
        }
    }
    
    我的解法代码

    取出后半段数字进行翻转

    • 每次进行取余操作,取出最低数字
    • 将最低数字加到取出数的末尾
    • 每取一位最低数,x就要/10
    • 判断x是否小于取出数,小于时代表已经对半
    • 如果是偶数,则两者相等,如果是奇数,需要/10
    class Solution {
        public boolean isPalindrome(int x) {
            //思考:这里大家可以思考一下,为什么末尾为 0 就可以直接返回 false
            if (x < 0 || (x % 10 == 0 && x != 0)) return false;
            int revertedNumber = 0;
            while (x > revertedNumber) {
                revertedNumber = revertedNumber * 10 + x % 10;
                x /= 10;
            }
            return x == revertedNumber || x == revertedNumber / 10;
        }
    }
    
  • 相关阅读:
    Leetcode 283. Move Zeroes
    算法总结
    随机森林
    BRICH
    DBSCAN算法
    k-means算法的优缺点以及改进
    soket编程
    手电筒过河
    字符串反转
    URAL 1356. Something Easier(哥德巴赫猜想)
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/12377244.html
Copyright © 2011-2022 走看看