力扣hot100 6 Z字型变换

目录

    • 题目介绍
    • 题目解析及代码

题目介绍

力扣hot100 6 Z字型变换_第1张图片
力扣hot100 6 Z字型变换_第2张图片

题目解析及代码

class Solusion:
    def convert(self,s:str,numRows:int) -> str:
        if numRows < 2:return s
        res = ["" for _ in range(numRows)]
        """
        flag 的灵活运用:
        我们在之字型存储的过程中(numRows个数组)
        需要进行转向 (0 或 numRows-1)
        用flag 表示正负项,初始值为 -1 ,判断为边界时 i (需要存储到第i个数组中)
        需要加上flag的相反数
        可以发现,flag为正数时,表示存储方向为正,flag为负数时,表示存储方向为负
        """
        i , flag = 0,-1
        for char in s:
            res[i] += char
            #print(res[i])
            if i==0 or i==numRows-1 :
                flag = -flag
            i += flag
        return "".join(res)

s = "PAYPALISHIRING"
a = Solusion().convert(s,3)
print(a)

输出 :PAHNAPLSIIGYIR

你可能感兴趣的:(leetcode,leetcode,算法,职场和发展)