leetcode 9 回文數 數學

2021-10-07 10:09:41 字數 1065 閱讀 8035

判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 1:

輸入: 121

輸出: true

示例 2:

輸入: -121

輸出: false

解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。

示例 3:

輸入: 10

輸出: false

解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。

高階:你能不將整數轉為字串來解決這個問題嗎?

我第一感覺就是首先負數肯定不是,然後我就思考到了,和我那個字串倒序,豈不是像的一批,負數直接捨棄,正數倒序後和原數一樣,不就是題目中的意思了。

class

solution

cout

return

true

;else

return

false;}

};

我的思路是正確的,最終也提交成功了,有幾點比較有意思。

官方題解和我的思路一致,就是整數反轉後,然後和原來的比較,官方也提到了這個資料溢位的問題,我呢是採用了longlongint的方法解決這一問題,官方提到乙個有趣的方法,把數字只反轉一半

具體思路是這樣:

**:

class

solution

int revertednumber =0;

while

(x > revertednumber)

// 當數字長度為奇數時,我們可以通過 revertednumber/10 去除處於中位的數字。

// 例如,當輸入為 12321 時,在 while 迴圈的末尾我們可以得到 x = 12,revertednumber = 123,

// 由於處於中位的數字不影響回文(它總是與自己相等),所以我們可以簡單地將其去除。

return x == revertednumber || x == revertednumber /10;

}};

leetcode 9 回文數字

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...

LeetCode 9 回文數(簡單)

點此去做 題幹 判斷乙個整數是否是回文數。回文數是指正序和倒序都是一樣的整數。你能不將數字轉化為字串做嗎?輸入 121 121 10輸出 true false false執行用時 28ms,11.5mb 思想 最開始想要借用整數翻轉的 先將整數翻轉後再做相等比較,結果發現用例中有會造成溢位的大數,不...

陣列 Leetcode9回文數

leetcode9 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 輸入 121 輸出 true 思路1 先變成字串然後對比 class solution return true 思路2 數字對比 class solution while num 0 r...