欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode 6. Z 字形变换

程序员文章站 2022-04-17 16:37:31
...

本文为打卡刷Leetcode题系列文章, 这个系列文章的目录都是按照如下四个部分构成

  • 题目链接
  • 题目描述
  • 代码初步
    这部分写的是我在刷题过程中的思路,相信在拿到题目就立马参考大神们的思路写代码是不会有进步的,我思故我在,思考让我进步!!
  • 代码欣赏
    这一部分po出优秀的解题答案,这里我们可以学习大神们的解题思路,进而内化成自己的。

题目链接

https://leetcode-cn.com/problems/zigzag-conversion/submissions/

题目描述

LeetCode 6. Z 字形变换
LeetCode 6. Z 字形变换

代码初步

看到题目就被吓到了,一点思绪没有,后面看到大佬的分享,恍然大悟的感觉,自己怎么这么菜。。。

代码欣赏

代码思路:
按顺序遍历字符串s:

  • res[i] += c; 把每个字符串填入对应的行res[i]中
  • i + = flag; 更新对应的行索引
  • flag = - flag 当行索引为第一行和最后一行时需要反向。
class Solution:
    def convert(self, s: str, numRows: int) -> str:
        if numRows < 2:
            return s
        i, flag = 0,-1
        res = ["" for _ in range(numRows)]
        for c in s:
            res[i] += c
            if i==0 or i==numRows - 1: 
                flag = -flag
            i = i + flag
        return ''.join(res)

LeetCode 6. Z 字形变换