class Solution(object):
def convert(self, s, numRows):
"""
:type s: str
:type numRows: int
:rtype: str
"""
if(len(s)<=numRows or numRows==1 or len(s)==1):
return s
jian = (numRows-1)*2
result = ""+s[0]
index = []
#处理第一行
i = 0
while((i+jian)<len(s)):
if((i+jian)<len(s)):
result = result + s[i+jian]
index.append(i+jian)
i = i+jian
index.append(i+jian)
#处理中间numrows-1行
for i in range(numRows-2):
result = result + s[i+1]
for j in index:
if((j-i-1)<len(s)):
result = result + s[j-i-1]
if((j+i+1)<len(s)):
result = result + s[j+i+1]
#处理最后一行
i=numRows-1
result = result + s[i]
while((i+jian)<len(s)):
result = result + s[i+jian]
i= i+jian
return result
大致思路是:
先处理第一行,根据第一行的索引处理中间的numrows-2行,最后处理最后一行。