java語言判斷一個數字是否為回文數字


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

示例 1:

輸入: 121
輸出: true

示例 2:

輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數。

示例 3:

輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個回文數。

進階:

你能不將整數轉為字符串來解決這個問題嗎?

解法一:使用字符串反轉,比較反轉前后的字符串是否相等

class Solution {
    public boolean isPalindrome(int x) {
        String str = String.valueOf(x);
        final StringBuilder builder = new StringBuilder(str);
        if(builder.reverse().toString().equals(str)){
            return true;
        }
        return false;
    }
}

解法二:不使用字符串,采用list存儲int各個位置上的變量置,然后從list兩端向中間比較數值是否相等

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;
        List list=new ArrayList();
        while(x/10!=0){
            list.add(x%10);
            x=x/10;
        }
        list.add(x);
        for(int i=0;i<list.size()/2;i++)
        {
            if(list.get(i)!=list.get(list.size()-i-1)) return false;
        }
        return true;
    }
}

兩種方法的耗時相近~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM