描述
给定一个字符串 s 和一个整数 numRows. 你需要把 s 排布成一个 numRows 行的 “之” 字形. 然后返回逐行阅读的结果.

注意, “之” 字形是按照 下->右上->下->右上…的方向延伸的.

| /| /|
| / | / | …
| / | / | …
|/ |/ |/
样例
样例 1:

输入: “PAYPALISHIRING”, numRows = 3
输出: “PAHNAPLSIIGYIR”
解释:
转换之后我们会得到
P A H N
A P L S I I G
Y I R
一行一行地读, 得到答案: “PAHNAPLSIIGYIR”.
样例 2:

输入: “PAYPALISHIRING”, numRows = 4
输出: “PINALSIGYAHRPI”
解释:
转换之后我们会得到
P I N
A L S I G
Y A H R
P I
一行一行地读, 得到答案: “PINALSIGYAHRPI”.
样例 3:

输入: “PAYPALISHIRING”, numRows = 1
输出: “PAYPALISHIRING”
解释:
转换之后我们会得到
PAYPALISHIRING
一行一行地读, 得到答案: “PAYPALISHIRING”.

class Solution:def convert(self, s, numRows):""":type s: str:type numRows: int:rtype: str"""if numRows == 1:return srows = ['']* min(numRows, len(s))#生成的是用于存储字符的几个行。godown = False#向下,默认禁止currow = 0#当前行for c in s:rows[currow] += c#当前行读取一个字符if currow == 0 or currow == numRows-1:godown = not godown#向下是否反转if godown:currow += 1#当前行+1,变成下一行,让下一行去读取字符else:currow -= 1#当前行-1,让上一行去读取字符return ''.join(rows)

#解释
rows = [’’]* min(numRows, len(s))
假设numRows=4,len(s)=10
rows=[’’, ‘’, ‘’, ‘’]。生成的是用于存储字符的几个行。
大概意思:
(1)生成几个的’’,个数=rows ,假设rows=4
(2)遍历字符串
(3)将字符串第一个字符传入第一个’’.将第二个字符传入第二个’’.
将第三个字符传入第三个’’,将第四个字符传入第四个’’。
(4)currow到达底部后, '‘逆序读取字符,即第三个’‘开始读取,然后第二个’‘读取,最后第一个’'读取
(5)currow到达顶部后, '‘再次顺序读取字符,第二个’‘读取,,再第三个’‘读取,最后到达底部,第四个’'读取。
不断重复4,5,直到读取完所有字符

leetcodeZ字形变换第1363题python相关推荐

  1. Leetcode 006. Z 字形变换 | 每日一题

    题目描述: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I ...

  2. Leetcode- Z 字形变换(6)

    题目描述 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列 ...

  3. Leetcode 6.Z 字形变换 (每日一题 20210630)

    将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A ...

  4. LeetCode Algorithm 6. Z 字形变换

    6. Z 字形变换 Ideas 这题的思路其实只要想到了就很简单,首先创建一个numRows行的矩阵,每一行用来存Z字变换后每一行的字符,然后遍历字符串s,其实就是从上往下然后从下往上填充到每一行,所 ...

  5. python【力扣LeetCode算法题库】6-Z 字形变换

    Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C ...

  6. leetcode第六题Z字形变换心得记录

    算法学习之路-坚持走下去 Z字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行 ...

  7. Java算法题:Z字形变换

    Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...

  8. LeetCode刷题笔记第6题:Z字形变换

    LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...

  9. leetcode题库:6. Z字形变换

    题目: /**题目:6. Z字形变换(题目地址:https://leetcode-cn.com/problems/zigzag-conversion/description/)  * 将字符串 &qu ...

最新文章

  1. B样条曲线 及 B样条曲面
  2. 浅谈最小生成树的算法思路(一)Prim算法
  3. 两个不同网段的局域网如何互通_不同网段之间如何通信?
  4. jdk8 字符串_在JDK 8中连接字符串
  5. “约见”面试官系列之常见面试题第十七篇之实现深拷贝(建议收藏)
  6. 使用.NET程序集作为Business Data Connectivity数据源(二)
  7. java装饰者模式讲解视频教程_java装饰者模式介绍(图文教程)
  8. 有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?
  9. 【运动学】基于matlab GUI地球自转模拟【含Matlab源码 1115期】
  10. 微信下载录音文件(音轨分离 ffmpeg视频合成)
  11. 大数据开源框架环境配置(一)——安装VMware
  12. ANSYS 有限元分析 加载/求解/输出
  13. 贴片电容造成短路烧毁的原因分析
  14. PC端哔哩哔哩动画下载的本地视频无法打开
  15. 自媒体赚钱网站有哪些(写文章赚钱的网站大全)
  16. PRD文档范例,千万收藏的产品经理写作手册
  17. POJ 3368 Frequent values
  18. Java 设计模式之策略模式(Strategy Pattern)
  19. 【Win10微信截图】Win10的wechat截图模糊修正
  20. MATLAB小波变换的图像融合系统[完美运行,GUI界面,详细教程,万字文稿]

热门文章

  1. 初中知识会不会影响计算机,初中计算机论文
  2. c语言入门后怎么玩,玩编程如何让人傻并快乐着?
  3. 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查
  4. Spring Boot配置文件加载顺序
  5. 回溯法(其实是递归)
  6. java面试开发过程中用到的问题
  7. Spring Boot 内置Tomcat——集成PHP解决方案
  8. SpringFox 3.0.0(包含springfox-swagger2-3.0.0)——无法访问/swagger-ui.html解决方案
  9. Spring Boot——控制台LOGO自定义配置管理解决方案
  10. Prepared for New Acmer