迴文數:指從左到右和從右到左看起來是一樣的,如121,25852,但-121不是迴文數,因爲有負號。
法一,將int轉化爲str:雙向隊列
時間複雜度:O(n^2) [因爲每次pop(0)的時間複雜度都是O(n),因爲pop(0)從列表頭刪除結點,需要重新排列,而pop()則快得多)]
def func(x):
x = list(str(x))
while len(x)>1:
if x.pop(0)!=x.pop():
return False
return True
print(func(121)) #True
法二:將int轉化爲str:雙指針
時間複雜度:O(n) 指針效率一直都很快
def func(x):
x = list(str(x))
n = len(x)
l,r = 0,n-1
while l!=r:
if x[l]!=x[r]:
return False
l+=1
r-=1
return True
print(func(1)) #True