ZigZag Conversion

LeetCode 6

class Solution:
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        
        Input: s = "PAYPALISHIRING", numRows = 4
        Output: "PINALSIGYAHRPI"
        Explanation:
        P     I    N
        A   L S  I G
        Y A   H R
        P     I
        
        思路: 
        利用一指標direct來控制插入點
        """
        if numRows == 1 or numRows >= len(s):
            return s
        strr = [''] * numRows
        index = 0
        for ch in s:
            strr[index] += ch
            if index == 0:
                direct = 1
            elif index == numRows -1:
                direct = -1
            index += direct
        return ''.join(strr)

Last updated