迴文數

題目大意

  判斷一個數字是不是回訪字數,不要使用額外的空間。spa

解題思路

  爲了避免使用額外的空間,參考了其它的解決,那些解法看起來在isPalindrome方法中沒有使用額外參數,可是卻使用了方法調用,這個比一個整數消耗的空間更多 ,並無達到題目的要求,是假的實現,因此本題依然採用一個額外的空間進行實現。
  首先,負數不是迴文數字,其次對數字進行逆轉,123變成321這樣,若是變換後的數字相等說明是迴文數字。code

代碼實現

public class Solution {
    public boolean isPalindrome(int x) {

        // 負數不是回訪數字
        if (x < 0) {
            return false;
        }

        // 數字逆轉後的值,爲了避免使用溢出採用long
        long reverse = 0;
        int tmp = x;

        // 求逆轉後的值
        while (tmp != 0) {
            reverse = reverse * 10 + tmp % 10;
            tmp /= 10;
        }

        // 判斷是不是迴文數字
        return x == reverse;
    }
}
相關文章
相關標籤/搜索