给定一个字符串和一个数字(行数),按给定的行数曲折转换给定的字符串
例:
输入 : "ABCDEFG",3
输出: "AEBDFCG"
解释: A E
B D F
C G
按每行的顺序重新拼接字符串输出
输入: "ABCDEFGHIJK",4
输出: "AGBFHCEIKDJ"
解释: A G
B F H
C E I K
D J
解法:
class Solution:
def convert(self, s: str, numRows: int) -> str:
if numRows <= 1:
return s
step = 1
pos = 0
line = dict()
for c in s:
if pos in line:
line[pos] += c
else:
line[pos] = c
pos += step
if pos == 0 or pos == numRows - 1:
step *= -1
result = ''
for k in range(numRows):
if k in line:
result += line[k]
return result