判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121輸出:示例 2:true
輸入: -121輸出:示例 3:false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。
輸入: 10輸出:最好理解的一種解法就是先將整數轉為字串 ,然後將字串分割為陣列,只需要迴圈陣列的一半長度進行判斷對應元素是否相等即可。false
解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。
動畫描述
解題**:
/** * @param x
* @return */
var ispalindrome = function
(x)
else
else}};
/*通過取整和取餘操作獲取整數中對應的數字進行比較。* * @param x
* @return */
var ispalindrome = function
(x)
//判斷奇數偶數
(xl.length) % 2 == 0 ? iso = true : iso = false
if(iso) }}
else}}
return
true
};
舉個例子:1221 這個數字。
通過計算 1221 / 1000, 得首位1動畫描述通過計算 1221 % 10, 可得末位 1進行比較
再將 22 取出來繼續比較
解題**:
/*直觀上來看待回文數的話,就感覺像是將數字進行對折後看能否一一對應。* * @param x
* @return */
var ispalindrome = function
(x)
return
true
;};
所以這個解法的操作就是 取出後半段數字進行翻轉。
這裡需要注意的乙個點就是由於回文數的位數可奇可偶,所以當它的長度是偶數時,它對折過來應該是相等的;當它的長度是奇數時,那麼它對折過來後,有乙個的長度需要去掉一位數(除以 10 並取整)。
具體做法如下:
每次進行取餘操作 ( %10),取出最低的數字:y = x % 10將最低的數字加到取出數的末尾:revertnum = revertnum * 10 +y動畫描述每取乙個最低位數字,x 都要自除以 10判斷 x 是不是小於 revertnum ,當它小於的時候,說明數字已經對半或者過半了
最後,判斷奇偶數情況:如果是偶數的話,revertnum 和 x 相等;如果是奇數的話,最中間的數字就在revertnum 的最低位上,將它除以 10 以後應該和 x 相等。
解題**:
var ispalindrome = function(x)
return x === revertednumber || x === parseint(revertednumber / 10);
};
LeetCode 009 回文數 C解法
category difficulty likes dislikes algorithms easy 55.96 593 companies判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 fa...
回文數的另一種解法
題目描述 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋...
LeetCode9 回文數 解法與分析
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左讀...