思路
遍歷字符串,創建每一行的字符串,把當前字符串加到對應的行上,最後把各行的字符串再加起來
通過變量step,初始值爲1,決定行數增還是減。當處在第一行的時候,行數增加,step自然爲1;在最後一行時,行數一直要減小。step爲-1,直到減到第一行,行數再增加,step又爲1,如此循環下去。
class Solution(object):
def convert(self, s, numRows):
if numRows == 1:
return s
nums = [''] * numRows
cur_row = 0
step = 1
for i in range(len(s)):
nums[cur_row] += s[i]
if cur_row == 0: #第一行,step變爲1
step = 1
if cur_row == numRows - 1: #最後一行,step變爲-1
step = -1
cur_row += step
return ''.join(nums)