采用数学归纳法,找规律
新建空列表res,列表长度为numRows,列表中每个元素为字符串,分别存储Z字形二维数组的每一行
例如:s = "PAYPALISHIRING" ,则res = ["PIN","ALSIG","YAHR","PI"]
通过找规律可知,可通过遍历字符串s,将字符先顺序后逆序添加进列表中(可以抽象的看作将整个Z形二维数组压扁??),最后通过拼接输出结果
class Solution:
def convert(self, s: str, numRows: int) -> str:
if numRows==1 or len(s)<=numRows:
return s
res = ["" for k in range(numRows)]
index = 0
k = 1
for i in s:
res[index] = res[index]+i
index = index+k
if index==0 or index==numRows-1:
k = -k
return "".join(res)