1. 程式人生 > >資料結構演算法題/判斷一個數字是否是迴文數

資料結構演算法題/判斷一個數字是否是迴文數

題目大意
  判斷一個數字是否是回訪字數,不要使用額外的空間。 

解題思路

先逆序然後判斷是否相等
  為了不使用額外的空間,參考了其它的解決,那些解法看起來在isPalindrome方法中沒有使用額外引數,但是卻使用了方法呼叫,這個比一個整數消耗的空間更多 ,並沒有達到題目的要求,是假的實現,所以本題依然採用一個額外的空間進行實現。 
  首先,負數不是迴文數字,其次對數字進行逆轉,123變成321這樣,如果變換後的數字相等說明是迴文數字。 

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;
    }
}

https://blog.csdn.net/derrantcm/article/details/46951803