資料結構演算法題/判斷一個數字是否是迴文數
阿新 • • 發佈:2018-11-19
題目大意
判斷一個數字是否是回訪字數,不要使用額外的空間。
解題思路
先逆序然後判斷是否相等
為了不使用額外的空間,參考了其它的解決,那些解法看起來在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