leetcode之回文數

2021-10-17 03:16:13 字數 1713 閱讀 8959

自己寫的解:

思路:將數字變成字串,再逐個字元進行對比

執行用時: 92 ms,超過23%

記憶體消耗: 14.8 mb,超過20%

class

solution

:def

ispalindrome

(self, x:

int)

->

bool

:if x<0:

return

false

a =str(x)

length =

len(a)-1

if length%2==

0:half_len =

int(length/2)

else

: half_len =

int(length/2)

+1for i in

range

(half_len)

:if a[i]

!= a[length-i]

:return

false

return

true

看了被人思路寫的解

執行用時: 72 ms,超過72%

記憶體消耗: 14.8 mb,超過15%

if x<0:

return

false

k = x

x =0while

(k>0)

: x = x*10+

(k%10

) k = k//

10return x == x

最短的解

執行用時: 56 ms,超過99%

記憶體消耗: 14.9 mb,超過11%

class

solution

:def

ispalindrome

(self, x:

int)

->

bool

:return

str(x)

==str

(x)[::

-1]

官方提供的解

思路:判斷數字的後一半是否和前一半相同,所以只用算一半。

執行用時: 68 ms,超過86%

記憶體消耗: 14.9 mb,超過7%

class

solution

:def

ispalindrome

(self, x:

int)

->

bool

:# 排除負數和能被10除的數

if x<0or

(x%10==0

and x!=0)

:return

false

revertednumber =

0while

(x>revertednumber)

: revertednumber = revertednumber*

10+x%

10 x = x//

10# 處理長度為奇數和偶數兩種情況

return revertednumber == x or x==revertednumber//

10

LeetCode隨緣刷題之回文數

package leetcode.day 01 30 給你乙個整數 x 如果 x 是乙個回文整數,返回 true 否則,返回 false 回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。例如,121 是回文,而 123 不是。示例 1 輸入 x 121 輸出 true 示例2 輸入 x...

leetcode題庫 回文數

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

leetcode演算法 回文數

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