給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為 1000。
二維陣列方法,很蠢的方法,即佔空間也浪費時間
寫了一個小時,拍腦袋想出了用二維陣列
太菜了哈哈,把這個程式碼放在這刺激自己。
def test3(self, s: str, numRows: int) -> str:
if numRows < 2:
return s
part = numRows*2-2
print(part)
print(len(s))
a = len(s)//part +1
test = list(s)
res = [["" for i in range((numRows-1)*a)] for i in range(numRows)]
# for i in res:
# print(i)
print("a",a)
n =0
for j in range((numRows-1)*a):
# print(j)
if n == numRows -1 or n == 0:
n = 0
for i in range(numRows):
if test != []:
# print("字串",test)
res[i][j] = test[0]
# for i in res:
# print(i)
test.remove(test[0])
# print(res)
n += 1
else:
if test != []:
# print("轉折")
# print((numRows-1)*a)
# print(test[0])
res[numRows-1-n][j] = test[0]
# print(res[n][j])
test.remove(test[0])
n +=1
# for i in res:
# print(i)
ans = ""
for i in res:
# print(i)
for j in i :
if j !='':
ans += j
# print(ans)
return ans
結果實在是太‘感動’了~~
羞羞臉~~
Accepted
1158/1158 cases passed (1028 ms)
Your runtime beats 5.07 % of python3 submissions
Your memory usage beats 5.06 % of python3 submissions (19.9 MB)
單list按行訪問儲存,設定flag動態訪問
透過從左向右迭代字串,我們可以定字元位於 Z 字形圖案中的哪一行。
解題思路
和二維陣列的思想區別在於,我們我們可以將二維陣列的行list,改為用字串來儲存。
其實之後返回的值也是str所有用字串可以更多地節省str-list-str的轉換資源消耗
- 首先構建numRows行的list用來儲存資料
- 這裡每一列都是一個字串形式
- 假設 numRows為3,
- 我們需要從res[0]到res[1]到2res[再]到1再res[0]到res[1]到res[2]的來儲存字串資料
這裡我們需要定義flag,我們每訪問完一次res[start]後:
- 我們需要從res[0]到res[1]到2res[再]到1再res[0]到res[1]到res[2]的來儲存字串資料
- 如果此時的start為第一行或者最後一行
- 則對flag取相反數,轉換順序
- (我們開始 從0-1的訪問時,可以先設定預設的flag為-1,當訪問完res[0]後,取相反數,就是正方向了)
def test(self, s: str, numRows: int) -> str:
if numRows < 2:
return s
res = ["" for i in range(numRows)]
start, flag = 0, -1
for c in s:
# print(c)
res[start] += c
if start == 0 or start == numRows - 1:
flag = -flag
start += flag
# for i in range(numRows):
# print(res[i])
return "".join(res)
bingo!
Accepted
1158/1158 cases passed (56 ms)
Your runtime beats 95.67 % of python3 submissions
Your memory usage beats 99.83 % of python3 submissions (12.7 MB)
原始碼儲存在github上,歡迎來提bug哦!-點選訪問
如果覺得不錯請給我一個star謝謝了Stray_Camel(^U^)ノ~YO
本作品採用《CC 協議》,轉載必須註明作者和本文連結
文章!!首發於我的部落格Stray_Camel(^U^)ノ~YO。