leetcodeZ字形变换第1363题python
描述
给定一个字符串 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相关推荐
- Leetcode 006. Z 字形变换 | 每日一题
题目描述: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I ...
- Leetcode- Z 字形变换(6)
题目描述 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列 ...
- Leetcode 6.Z 字形变换 (每日一题 20210630)
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A ...
- LeetCode Algorithm 6. Z 字形变换
6. Z 字形变换 Ideas 这题的思路其实只要想到了就很简单,首先创建一个numRows行的矩阵,每一行用来存Z字变换后每一行的字符,然后遍历字符串s,其实就是从上往下然后从下往上填充到每一行,所 ...
- python【力扣LeetCode算法题库】6-Z 字形变换
Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C ...
- leetcode第六题Z字形变换心得记录
算法学习之路-坚持走下去 Z字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行 ...
- Java算法题:Z字形变换
Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...
- LeetCode刷题笔记第6题:Z字形变换
LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...
- leetcode题库:6. Z字形变换
题目: /**题目:6. Z字形变换(题目地址:https://leetcode-cn.com/problems/zigzag-conversion/description/) * 将字符串 &qu ...
最新文章
- B样条曲线 及 B样条曲面
- 浅谈最小生成树的算法思路(一)Prim算法
- 两个不同网段的局域网如何互通_不同网段之间如何通信?
- jdk8 字符串_在JDK 8中连接字符串
- “约见”面试官系列之常见面试题第十七篇之实现深拷贝(建议收藏)
- 使用.NET程序集作为Business Data Connectivity数据源(二)
- java装饰者模式讲解视频教程_java装饰者模式介绍(图文教程)
- 有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?
- 【运动学】基于matlab GUI地球自转模拟【含Matlab源码 1115期】
- 微信下载录音文件(音轨分离 ffmpeg视频合成)
- 大数据开源框架环境配置(一)——安装VMware
- ANSYS 有限元分析 加载/求解/输出
- 贴片电容造成短路烧毁的原因分析
- PC端哔哩哔哩动画下载的本地视频无法打开
- 自媒体赚钱网站有哪些(写文章赚钱的网站大全)
- PRD文档范例,千万收藏的产品经理写作手册
- POJ 3368 Frequent values
- Java 设计模式之策略模式(Strategy Pattern)
- 【Win10微信截图】Win10的wechat截图模糊修正
- MATLAB小波变换的图像融合系统[完美运行,GUI界面,详细教程,万字文稿]
热门文章
- 初中知识会不会影响计算机,初中计算机论文
- c语言入门后怎么玩,玩编程如何让人傻并快乐着?
- 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查
- Spring Boot配置文件加载顺序
- 回溯法(其实是递归)
- java面试开发过程中用到的问题
- Spring Boot 内置Tomcat——集成PHP解决方案
- SpringFox 3.0.0(包含springfox-swagger2-3.0.0)——无法访问/swagger-ui.html解决方案
- Spring Boot——控制台LOGO自定义配置管理解决方案
- Prepared for New Acmer