6. Z 字形變換

在這裏插入圖片描述

思路

遍歷字符串,創建每一行的字符串,把當前字符串加到對應的行上,最後把各行的字符串再加起來
通過變量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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章