LeetCode 6:《ZigZag Conversion》

来源:互联网 发布:双功能酶 知乎 编辑:程序博客网 时间:2024/04/29 21:58

编程思路:首先理解什么是ZigZag,所谓ZigZag就是N字型,生成ZigZag时,及时更新字符前进方向,详细介绍见下面的Python程序

class Solution:    # @return a string    def convert(self, s, nRows):        # 只有一行时        if nRows == 1:            return s        # 将行号和每行的字符串建立映射        row_str = {}        for i in range(nRows):            row_str.setdefault(i, '')        i, row = 0, 0        # 设置一个标志,当前zigzag的方向,是向下还是向上,默认向下        flag = True        while i < len(s):            row_str[row] = row_str[row] + s[i]            if flag:                row = row + 1                # 当达到最下面的一行,调整方向                if row == nRows:                    row = row - 2                    flag = False            else:                row = row - 1                # 当达到最上面一行,调整方向                if row == -1:                    row = row + 2                    flag = True            i = i + 1        result = ''        for i in range(nRows):            result = result + row_str[i]        return result


0 0
原创粉丝点击