LeetCode Z字形變換 by python

2021-08-20 17:52:43 字數 1293 閱讀 5467

題目:

將字串"paypalishiring"以z字形排列成給定的行數:

p   a   h   n

a p l s i i g

y i r

之後從左往右,逐行讀取字元:"pahnaplsiigyir"

實現乙個將字串進行指定行數變換的函式:

string convert(string s, int numrows);
示例 1:

輸入: s = "paypalishiring", numrows = 3

輸出: "pahnaplsiigyir"

示例 2:

輸入: s = "paypalishiring", numrows = 4

輸出: "pinalsigyahrpi"

解釋:p i n

a l s i g

y a h r

p i

分析:

剛開始看題目的時候被兩列之間的空格給迷惑了,後面看了網上其他人的分析,知道了不需要管空格。這個採用二維陣列,然後慢慢填充就行了,一次遍歷填充一行中的某乙個位置,然後換到下一行。

**:

ef convert(s, numrows):

""":type s: str

:type numrows: int

:rtype: str

"""if(numrows == 1): return s

a = [for i in range(numrows)]#產生乙個有numrows單元的list,每個list可以在後面新增元素

r = 0

direct = 1 #行前進的方向是向上還是向下

for c in s:

if r >=numrows-1:

direct = -1

elif r == 0:

direct = 1

r +=direct

answer = ""

for row in a:#按行優先列印出來

for col in row:

answer += col

return answer

if __name__ == "__main__":

print(convert("paypalishiring",4))

leetcode Z字形變換

將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiiged...

leetcode Z字形變換

將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiigedhn 請你實現這個將字串進行指定行數變換的函式 string c...

LeetCode Z字形變換

繼續刷題 題目 z字形變換 將乙個給定字串根據給定的行數,以從上往下,從左往右進行z字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n之後,你的輸出需要從左往右逐行讀取,產生乙個新的字串,比如 lcir...