Z字变换Python解法
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:
P A H N
A P L S I I G
Y I R
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。
请你实现这个将字符串进行指定行数变换的函数:
string convert(string s, int numRows);
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zigzag-conversion
例:
输入:s = "PAYPALISHIRING", numRows = 4
输出:"PINALSIGYAHRPI"
解释:
P I N
A L S I G
Y A H R
P I
# 解析:给定多少行,就初始化多少空字符,然后将给定字符串从第一个字符开始依次加入到每个空字符中,当加入到最后一个就反向遍历,遍历到第一个就再正向遍历
class Solution(object):def convert(self, s, numRows):""":type s: str:type numRows: int:rtype: str"""if numRows == 1 or numRows >= len(s): return s # 只有一列的情况直接返回原字符串r, j, k = ['']*numRows, 0, 1 # 初始化几个空字符串,子字符串下标,计数器for i in s: # 遍历每一个字符r[j] += i # 添加到当前子字符串中j += k # 换字符串if j == 0 or j == numRows-1: k=-k # 当遍历到头或尾时改变遍历方向return ''.join(r) # 直接将字符串连起来
Z字变换Python解法相关推荐
- leetcode6 Z字形变换 python
题目: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R之后从左到右"PAHNAPLSIIG ...
- LeetCode第六题Z字变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: P ...
- LeeTCode:6. Z 字形变换 python实现
将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: 方法一: 为一个 类似 ...
- LeetCode Algorithm 6. Z 字形变换
6. Z 字形变换 Ideas 这题的思路其实只要想到了就很简单,首先创建一个numRows行的矩阵,每一行用来存Z字变换后每一行的字符,然后遍历字符串s,其实就是从上往下然后从下往上填充到每一行,所 ...
- JS程序|Z字形变换
注 题目来源:力扣 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C ...
- LeetCode琅琊榜第十六层-Z字型变换(直接构造法 + 周期性算法)
LeetCode6.Z字形变换 难度:中等 往期力扣与博主空间 题目链接 目录 官方解法1-构造Z字型数组模拟 案例分析 规律探索 原因: 代码实现 代码分析: 问题 官方解法二-压缩上述二维数组 ...
- LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
题目地址:Kth Largest Element in an Array - LeetCode Find the kth largest element in an unsorted array. N ...
- python实现倒n字形排列_Leetcode问题库——Z形变换(Python),补充X形变换,字形
Z字形变换 题目 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: 之后 ...
- Z 字形变换 C++实现 java实现 leetcode系列(六)
Z 字形变换 java实现 C++实现 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...
最新文章
- insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
- phoenix 开发API系列(二)phoenix 各类 api 实现方式
- python3各版本区别-Python2 与Python3的版本区别实例分析
- mail、mailx、sendmail的区别
- 2015春节期间读完两本书,立贴为证。
- python网络编程:UDP方式传输数据
- Java并发编程之CountDownLatch(闭锁)使用详解
- 调用外部文件(ShellExecute)
- elementUI vue 编辑中的input的验证残留清除
- Web中Servlet
- python第6天作业
- Python 函数也是一种对象
- IP寻址与子网划分网管员要知道什么
- 苹果匠艺:乔布斯身边的天才
- 投票系统程序设计缺陷分析
- 我该如何带好你—我的团队
- 【阿里云镜像】更新阿里巴巴开源镜像站镜像——Ubuntu镜像
- 示波器电流探头传播延迟的测量
- 算1 - n的阶乘和末6位(超详细)
- FrameExit:Conditional Early Exiting for Efficient Video Recognition
热门文章
- 使用 Recipe 安装 SAP Commerce Cloud
- JavaScript 异步执行的学习笔记 - 什么是事件循环 Event loop?
- SAP Spartacus Cost Center list的实现原理
- SAP Spartacus User form通过label标签的实现原理
- SAP Spartacus 中,Angular <ng-container>使用的一个例子
- 一个利用System.gc和finalize研究Java垃圾回收机制的练习
- SAP S/4HANA Smart Business Filter is too complex - step by step
- every function in scala is an instance of a class
- SAP WebIDE登录时,有时会发生超时现象
- 两种方法动态获得ABAP类的class attribute的值