leetcode 6 z字型变换
执行用时 :64 ms, 在所有 Python3 提交中击败了99.74%的用户
由题目可知 我们的最终字符串会被摆成 numRows 行,那我们理解为 最终结果是numRows个字符串相加
先建立等于numRows行数的空字符串,然后按顺序向字符串中添加字符,
核心思想是
一次完整的变换中,总共会使用 2*numRows-2个字符, 先使用了numRows个字符向下排列,即共numRows行, 每一行都按顺序加入一个字符,
然后 剩下了还有 numRows-2个字符 从下往上添加入每一行,
接下来 持续用while 将整个流程包裹,完成所有字符行数变换,最后将numRows行数的各字符串拼接即可输出为答案.
class Solution:
def convert(self, s, numRows):
if not numRows > 1:
return s
if numRows == 2:
s1 = s[::2]
s2 = s[1::2]
s3 = s1 + s2 return s3
s_Initialize = [''] * numRows
# print(s_row)
i = 0
n = len(s)
while i < n:
for count_columns in range(numRows):
if i < n:
s_Initialize[count_columns] += s[i] # 这里进行了将numRows个字符从上往下安置入每一行
# print(s_row)
i += 1
# print(s_row)
for count_Rows in range(numRows - 2, 0, -1): # 这里进行了将numRows-2个字符从下往上安置入每一行
if i < n:
s_Initialize[count_Rows] += s[i]
i += 1
return ''.join(s_Initialize)
作者:darede
链接:https://leetcode-cn.com/problems/two-sum/solution/6-zzi-bian-huan-python3-an-xing-qu-zhi-by-darede/
leetcode 6 z字型变换的更多相关文章
- [LeetCode] Z字型变换
题目内容: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:" ...
- leetcode 6/300 Z字型变换 py
目录 题目说明 方法一:利用flag 题目说明 方法一:利用flag 简单来说就是利用flag来表示方向,真的神来之笔. class Solution: def convert(self, s: st ...
- 06. Z字型变换
题目: 提交01: class Solution { public String convert(String s, int numRows) { int length = 2*numRows-2; ...
- LeetCode OJ:ZigZag Conversion(字符串的Z字型转换)
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...
- 算法:Z字型(Zigzag)编排
问题:给定 n 行和 m 列的二维数组矩阵.如图所示,以 ZIG-ZAG 方式打印此矩阵. 从对称的角度来看,通过反复施加滑行反射可以从简单的图案如线段产生规则的之字形. 主要思想:算法从(0, 0) ...
- LeetCode ZigZag Conversion(将字符串排成z字型)
class Solution { public: string convert(string s, int nRows) { string a=""; int len=s.leng ...
- LeetCode--006--Z字型变换(java)
将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T ...
- 281. Zigzag Iterator z字型遍历
[抄题]: Given two 1d vectors, implement an iterator to return their elements alternately. Example: Inp ...
- YTU 2898: C-Z型变换
2898: C-Z型变换 时间限制: 1 Sec 内存限制: 128 MB 提交: 53 解决: 15 题目描述 让我们来玩个Z型变换的游戏,游戏的规则如下: 给你一个字符串,将它以Z字型的形状不 ...
随机推荐
- centos系统与ubuntu系统的区别
centos和ubuntu简述 CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Lin ...
- Rocket - debug - Example: Write Memory
https://mp.weixin.qq.com/s/on1LugO9fTFJstMes3T2Xg 介绍riscv-debug的使用实例:使用三种方法写内存. 1. Using System Bus ...
- 分享两个常用的rem布局方式
关于rem 这种技术需要一个参考点,一般都是以<body>的“font-size”为基准. 比如我们设置body,html的字体大小为10px:那么1rem就是10px, 这样一来,我们设 ...
- 面试官:兄弟,说说Java的static关键字吧
读者乙在上一篇我去系列文章里留言说,"我盲猜下一篇标题是,'我去,你竟然不知道 static 关键字'".我只能说乙猜对了一半,像我这么有才华的博主,怎么可能被读者猜中了心思呢,必 ...
- Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
833. 字符串中的查找与替换 对于某些字符串 S,我们将执行一些替换操作,用新的字母组替换原有的字母组(不一定大小相同). 每个替换操作具有 3 个参数:起始索引 i,源字 x 和目标字 y.规则是 ...
- Java实现 LeetCode 636 函数的独占时间(栈)
636. 函数的独占时间 给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间. 每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用. 日志是具有以 ...
- Java实现 LeetCode 461 汉明距离
461. 汉明距离 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入 ...
- Java实现 LeetCode 341 扁平化嵌套列表迭代器
341. 扁平化嵌套列表迭代器 给你一个嵌套的整型列表.请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数. 列表中的每一项或者为一个整数,或者是另一个列表.其中列表的元素也可能是整数或是其他列 ...
- Java实现 蓝桥杯VIP 算法训练 快速排序
import java.util.Scanner; public class 快速排序 { public static void main(String[] args){ Scanner sc=new ...
- java实现平面4点最小距离
已知平面上若干个点的坐标. 需要求出在所有的组合中,4个点间平均距离的最小值(四舍五入,保留2位小数). 比如有4个点:a,b,c,d, 则平均距离是指:ab, ac, ad, bc, bd, cd ...