文巾解题 6. Z 字形变换
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 6. Z 字形变换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路
2.1 構造Z型數組
class Solution:def convert(self, s: str, numRows: int) -> str:if(numRows==1):return(s)#numRows=1 特判tmp=[] for i in range(numRows):tmp.append([])#Z型數組i=0 #當前遍歷到的s的下標l=len(s)index=0 #當前數組插入的狀態while(i<l):if(index==0):index=1for j in range(numRows):if(i<l):tmp[j].append(s[i])i=i+1else:break#index=0——這一列都有值elif(index==numRows-1):index=0#回到一開始index=0的狀態,開始下一輪“循環”else:for j in range(numRows):if(j!=numRows-1-index):tmp[j].append(" ")else:tmp[j].append(s[i])i+=1index+=1 #每一列只有一個值非空ret=""for i in tmp:for j in i:if(j!=' '):ret+=jreturn(ret)2.2 方法2 不模擬Z型數組
記返回的數組為res。
->按順序遍歷字符串 s;
->res[i] += c: 把每個字符 c 填入對應行?
->i += flag: 更新當前字符 c 對應的行索引;
->flag = - flag: 在達到 Z?字形轉折點時,更新步數執行反向。
可以看到,2.2的時間消耗比2.1小很多
總結
以上是生活随笔為你收集整理的文巾解题 6. Z 字形变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch笔记:实现简易LSTM
- 下一篇: 文巾解题 7. 整数反转