【LeetCode】(簡單)9. 迴文數

在這裏插入圖片描述

思路1:

將問題轉爲判斷迴文字符串

代碼1:

class Solution {
    public boolean isPalindrome(int x) {
        if(x <0) return false;
        if(x ==0) return true;
        
        //int轉爲String
        String str = Integer.toString(x);
        //String轉爲char[]
        char[] c = str.toCharArray();
        for(int i =0; i<c.length/2; i++){
            if(c[i] != c[c.length-1-i])
               return false;
        }
        return true;
    }
}

思路2:

繼續作爲int類型的問題來解決,利用%和/符號來獲取位數並比較。

代碼2:

class Solution {
    public boolean isPalindrome(int x) {
        //邊界判斷
        if (x < 0) return false;
        int div = 1;
        //得到x的位數
        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;
            //位數-2
            div /= 100;
        }
        return true;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章