演算法基礎 數字操作 回文數

2021-10-09 01:14:23 字數 1198 閱讀 2863

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

示例 1:

輸入: 121

輸出: true

示例 2:

輸入: -121

輸出: false

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

示例 3:

輸入: 10

輸出: false

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

解法一 字串反轉法

負數肯定不是回文數,我們只需要將給定的數轉換為字串然後進行反轉對比即可。

/**

* @param x

* @return

*/var

ispalindrome

=function

(x)else

if(string.prototype.split.

call

(x,'').

reverse()

.join(''

)!= x)

return

true

;}

解法二 雙指標夾逼法

將數字轉換為字串,然後在首位布置兩個指標,迴圈判斷,夾逼即可。

/**

* @param x

* @return

*/var

ispalindrome

=function

(x)}

return

true

;}

解法三 數學解法

使用除法和求餘獲得對應位置的數字。

每次比較首位和末位即可xn

x / n

x % n

123521

10000011

2352

100022

351035

/**

* @param x

* @return

*/var

ispalindrome

=function

(x)return

true;}

;

9 數字的位操作 回文數

class solution int revertednumber 0 while x revertednumber 當數字長度為奇數時,我們可以通過 revertednumber 10 去除處於中位的數字。例如,當輸入為 12321 時,在 while 迴圈的末尾我們可以得到 x 12,rever...

演算法 回文數

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

基礎練習 回文數

基礎練習 回文數 間限制 1.0s 記憶體限制 512.0mb 問題描述 1221是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。輸出格式 按從小到大的順序輸出滿足條件的四位十進位制數。思路1 判斷條件也很清楚,從左讀的書就是數本身,關鍵看如何得到從右開始讀的數...