小白刷題——迴文數

小白MX發表於2020-12-02

JAVA小白自學中

迴文數

題目

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

標題示例

示例 1:
輸入: 121
輸出: true

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

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

程式碼

class Solution {
    public boolean isPalindrome(int x) {
        if (x<0){
            return false;
        }
        if (x%10==0&&x!=0){
            return false;
        }
        int a,b;
        b=0;
        for (int i = x; i != 0; i = i / 10) {
            a = i % 10;
            if (i < 10) {
                b = b + a;
            } else {
                b = (a + b) * 10;
            }
        }
        if (b==x){
            return true;
        }
        return false;
    }
}

解題思路

判斷一個整數是否是迴文數。
迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
根據要求
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。
故先將x<0的數直接排除在外

然後根據要求
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個迴文數。
故先將x能被10整除又不等於0的數直接排除

做完前面兩步現在就是比較x與其反轉過來的數了
a:對10取餘,儲蓄本輪資料;
b:儲存上一輪資料;
i:迴圈判斷儲存X的值並判斷X與除10(步進)
輸出異常為false,要不然最後一個if無用

宣告

以上內容為本人對此題的處理方法
若有侵權,請在下方回覆中舉證並@本人刪除文章
本人小白一枚,自學的JAVA
願大家都能找到比我更加優秀的方法

在此鳴謝

leetcode平臺與CSDN平臺的支援
還有各位的捧場

相關文章