LeetCode:判斷迴文數

LeetCode:判斷迴文數

根據數的位數取出首尾進行比較,判斷是否迴文java

No.9 迴文數

題目:工具

判斷一個整數是不是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是同樣的整數ui

示例 1:code

輸入: 121
輸出: true

示例 2:leetcode

輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。所以它不是一個迴文數

示例 3:字符串

輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。所以它不是一個迴文數

解法:數學

  1. 數學方法io

    取數的首尾進行比較class

    public boolean isPalindrome(int x)
    {
        //邊界判斷
        if (x < 0) return false;
        if (x < 10) return true;
        if (x % 10 == 0) return false;
        int div = 1;
        while (x / div >= 10) div *= 10;
        while (x > 0)
        {
            int left = x / div;
            int right = x % 10;
            if (left != right) return false;
            x = (x % div) / 10;//先後各去掉一位
            div /= 100;
        }
        return true;
    }
  2. 雙棧比較sed

    棧的 equals 方法判斷兩個棧中元素是否相同

    class Solution
    {
        public boolean isPalindrome(int x)
        {
            String s = String.valueOf(x);
            int len = s.length();
            Stack s1 = new Stack();
            Stack s2 = new Stack();
            for (int i = 0; i < len; i++)
            {
                s1.push(s.charAt(i));
            }
            for (int i = len - 1; i >= 0; i--)
            {
                s2.push(s.charAt(i));
            }
            return s1.equals(s2);
        }
    }
  3. 字符串工具類反轉

    class Solution 
    {
        public boolean isPalindrome(int x) 
        {
            String reversedStr = (new StringBuilder(x + "")).reverse().toString();
            return (x + "").equals(reversedStr);
        }
    }
相關文章
相關標籤/搜索