Scribbling

LeetCode: 6. ZigZag Conversion 본문

Computer Science/Coding Test

LeetCode: 6. ZigZag Conversion

focalpoint 2021. 8. 16. 15:55
class Solution:
    def convert(self, s: str, numRows: int) -> str:
        if numRows == 1:
            return s
        
        board = [[] for _ in range(numRows)]
        
        denom = 2 * numRows - 2
        for i, char in enumerate(s):
            remainder = i % denom
            if remainder < numRows:
                board[remainder].append(char)
            else:
                board[2 * numRows - remainder - 2].append(char)
        
        ret = ''
        for i in range(len(board)):
            for j in board[i]:
                ret += j
        return ret