美文网首页
[LeetCode By Python] 6. ZigZag C

[LeetCode By Python] 6. ZigZag C

作者: 乐乐可爱睡觉 | 来源:发表于2016-06-28 10:50 被阅读190次

一、题目

ZigZag Conversion

二、解题

按照Z字形状来重新遍历字符串(看上去是N字吧~)

  • 思路是做了一个二维数组,然后按照一定的规律变化下标(使用flag来判断当前应该是向下还是向上),把字符串的数字填入到二维数组中去。
  • 最后遍历一下整个二维数组即可。

三、尝试与结果

class Solution(object):
    def convert(self, s, numRows):
        if s == "" or numRows == 0 or numRows == 1:
            return s
        resultList = [[] for i in range(numRows)]
        row = numRows - 1
        ri = 0
        ci = 0
        num = 0
        flag = 0 # flag 0 for down,1 for up
        while num < len(s):
            resultList[ri].append(s[num])
            if flag == 1:
                ci = ci + 1
                ri = ri - 1
            elif flag == 0:
                ri = ri + 1
            if ri == 0 or ri == numRows - 1:
                flag = flag ^ 1
            num = num + 1

        result = ""
        for listi in resultList:
            for j in listi:
                result += str(j)
        return result

结果:AC

相关文章

网友评论

      本文标题:[LeetCode By Python] 6. ZigZag C

      本文链接:https://www.haomeiwen.com/subject/fkltjttx.html