Skip to main content
  1. Posts/

LeetCode-6 Z 字型变换

·1 min·

LeetCode-6 Z 字型变换 #

Solution 1 #

对于 “Z” 字变换的 “|” 和 “/” 部分, 如果有 numRows 行, 则每个 “|” 和 “/” 有 2 * (numRows - 1) 个. 变换后, 先取这部分中的第 $0$ 个, 再取第 $1$ 和 $-1$ 个, 即根据模数取即可. 代码如下:

class Solution:
    def convert(self, s: str, numRows: int) -> str:
        if numRows == 1:
            return s
        ans = ''
        for i in range(numRows):
            k = 2 * (numRows - 1)
            for j in range(len(s)):
                if (j % k == i) or (j % k == (k - i) % k):
                    ans += s[j]
        return ans