LeetCode6-Z字形变换
生活随笔
收集整理的這篇文章主要介紹了
LeetCode6-Z字形变换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
將一個給定字符串根據給定的行數numRows,以從上往下、從左到右進行 Z 字形排列。
比如輸入字符串為 “LEETCODEISHIRING” 行數為 3 時,排列如下:
之后,你的輸出需要從左往右逐行讀取,產生出一個新的字符串,比如:“LCIRETOESIIGEDHN”。
思路
利用長度為numRows的數組,第i個元素表示第i行包含的字符。利用flag控制Z字前進方向,如果當前在第一行或最后一行則改變Z字前進方向。
代碼
class Solution:def convert(self, s: str, numRows: int) -> str:if numRows<2:return sresult=["" for i in range(numRows)]#創建長度為numRows的空數組flag,i=-1,0for a in s:#遍歷字符串result[i]+=a#第i行加上對應字符if i == 0 or i == numRows-1:#改變Z字前進方向flag=-flagi+=flagreturn "".join(result)#數組合成字符串總結
以上是生活随笔為你收集整理的LeetCode6-Z字形变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode5-最长回文子串原理及P
- 下一篇: 神经网络入门-MLP, RNN, BiR