回文數 js 解法

2022-09-07 01:09:15 字數 1941 閱讀 9915

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

示例 1:

輸入: 121輸出: 

true

示例 2:

輸入: -121輸出: 

false

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

示例 3:

輸入: 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 解釋 從右向左讀...