LeetCode(9)--Palindrome Number

題目如下:
Determine whether an integer is a palindrome. Do this without extra space.

解題解題思路:
該問題最大的難道在於無額外的空間,如果沒有此限制,可以將數字轉換成String然後對String反轉比較兩個字符串是否相等就可以了,但是,既然有了此限制,就得去想其他方法了。先借用一箇中間變量判斷該數字的長度,然後根據數的長度和迴文數字的性質進行操作;注意負數不是迴文數。

提交的代碼如下:

    public boolean isPalindrome(int x) {
        if(x < 0 || x > 2147483647) return false;
        if(x < 10) return true;
        int i= 0;
        int tmp = x;
        while(tmp > 0){
            tmp /= 10;
            i++;
        }
        while(i> 0){
            i--;
            if((x % 10) !=  (int)(x / Math.pow(10, i))){
                return false;
            }
            x = (int)(x % Math.pow(10, i) - x % 10) / 10;
            i--;
        }
        return true;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章