題目:
將字串"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...