1. 程式人生 > 其它 >leetCode9:判斷一個整數是否是迴文數的Java程式碼實現

leetCode9:判斷一個整數是否是迴文數的Java程式碼實現

技術標籤:LeetCodeJavaleetcode

//問題描述:判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
// 示例 1:
// 輸入: 121
//輸出: true
// 輸入: -121
//輸出: false
//解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。
// 示例 3:
// 輸入: 10
//輸出: false
//解釋: 從右向左讀, 為 01 。因此它不是一個迴文數。
這是一道判斷整數是否為迴文數的問題,其實就是翻轉過來是否等於原來的數,第一反應是將整數當成字串處理,切割判斷,但如果做過整數翻轉這一題後,會發現迴文數問題就是和整數翻轉問題是一樣的思路?如果得到了一個數翻轉過來的整數,再判斷和原整數是否相等即可確定是否為迴文數了,關鍵如何去解決對整數翻轉是解決題目的關鍵。

整數反轉的關鍵程式碼為:

            int res = 0;
            while (x != 0) {
                res = x % 10 + res * 10;
                x /= 10;
            }

其具體思路為:比如x=121這個數,先設立一個變數res=0,當x>0時不斷對x取餘,121%10=1,然後令res=121%10+10res=1,同時對x不斷除10取整,保證取到倒數上一位數, res=12%10+110 = 12,最後 res=1%10+12*10=121。
因此迴文串的整體程式碼為:

    class Solution
{ public boolean isPalindrome(int x) { int temp =x; if (x < 0) return false; int res = 0; while (x != 0) { res = x % 10 + res * 10; x /= 10; } if (res == temp){ return true; }
else{ return false; } } }