将字符串中的字符按Z字形排列,按行输出

Posted wenqinchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串中的字符按Z字形排列,按行输出相关的知识,希望对你有一定的参考价值。

示例1:

  Input: s = "PAYPALISHIRING", numRows = 3  

       技术图片

  Output: "PAHNAPLSIIGYIR"

示例2:

技术图片

解决方案:

    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        if len(s) <= numRows or numRows==1 :
            return s
        s_dict = {i:"" for i in range(numRows)}
        unit = 2*numRows - 2
        for i in range(len(s)):
            remain = i%unit
            if remain <= numRows - 1:
                s_dict[remain] += s[i]
            else:
                pos = unit - remain
                s_dict[pos] += s[i]
        out = ""
        for i in range(numRows):
            out += s_dict[i]
        return out

 

以上是关于将字符串中的字符按Z字形排列,按行输出的主要内容,如果未能解决你的问题,请参考以下文章

Z字形变换 leetcode 6

Z字形变换

Z 字形变换

z字形变换

Z 字形变换

[LeetCode] Z字形变换