力扣6. Z 字形变换

58 阅读1分钟

1. 题目

leetcode.cn/problems/zi…

image.png

2. 解析

image.png

3. 核心代码

class Solution:
    def convert(self, s: str, numRows: int) -> str:
        if numRows < 2: return s
        result = ['' for _ in range(numRows)]
        i, flag = 0, -1
        for c in s:
            result[i] += c
            if i == 0 or i == numRows - 1: flag = -flag
            i += flag
        return "".join(result)


if __name__ == '__main__':
    s = Solution()
    print(s.convert('PAYPALISHIRING', 4))