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

想法:
要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列。当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表,表示将排列之后的每行字符存入对应位置的列表的位置中。因为在排列的时候,元素的列数在遇到Z字拐角处递增和递减交替进行,用flag来控制列数的递增和递减。详细注释见代码。

class Solution:def convert(self, s: str, numRows: int) -> str:# 当给定行数为1时,返回原字符串if numRows < 2: return s# 以列数构建列表中的位置数,为之后存放每行数据做准备res = ["" for _ in range(numRows)]# 设置初始值,flag用于Z字形排列在拐角处的操作i, flag = 0, -1for c in s:# 将每行的数据加入列表对应的位置处res[i] += c# 此处判断完成Z字形排列的拐角转行if i == 0 or i == numRows - 1: flag = -flagi += flag# 将每行的字符串(每个位置字符串)拼接return "".join(res)

LeetCode刷题笔记第6题:Z字形变换相关推荐

  1. LeetCode刷题笔记第171题: Excel 表列序号

    LeetCode刷题笔记第171题: Excel 表列序号 想法: 给你一个字符串 columnTitle,表示 Excel 表格中的列名称.返回 该列名称对应的列序号.此题单个字符的对应值与ASCI ...

  2. LeetCode《算法入门》刷题笔记(31 题全)

    LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...

  3. 《剑指 Offer I》刷题笔记 11 ~ 19 题

    <剑指 Offer I>刷题笔记 11 ~ 19 题 查找算法(中等) 11. 二维数组中的查找 _解法 1:暴力迭代 解法 2:标志数 解法 3:逐行二分 12. 旋转数组的最小数字 _ ...

  4. 《剑指 Offer I》刷题笔记 1 ~10 题

    <剑指 Offer I>刷题笔记 1 ~10 题 栈与队列(简单) 1. 用两个栈实现队列 _解法 1:暴力做法 解法 2:优化解法 1 2. 包含 min 函数的栈 _解法 1:pop( ...

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

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

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

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

  7. java编写字母z算法_【Java】【每日算法/刷穿 LeetCode】6. Z 字形变换(中等)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]6. Z 字形变换(中等) 宫水三叶发布于 今天 12:03 题目描述 将一个给定字符串 s 根据给定的行数 numRows , ...

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

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

  9. LeetCode Algorithm 6. Z 字形变换

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

最新文章

  1. 卡拉OK效果的实现-iOS音乐播放器
  2. 唐诗三百首加密软件如何使用_视频加密一机一码软件该如何选择?有哪些因素影响?...
  3. 原以为原神是米哈游的极限,看过美术总监的年番,恍然大悟!
  4. Kafka简介、安装
  5. 数据结构课程设计---------用栈来实现表达式求值
  6. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)
  7. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
  8. 腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc
  9. java初学者适用项目_有哪些适合java初学者的项目?
  10. 机器学习--线性回归(LinearRegression)
  11. 记者“卧底”程序猿的故事
  12. 【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD
  13. Effective C++ Notebook
  14. Google Chrome 扩展程序
  15. 苹果开发者账号添加设备
  16. 【MacBook Pro 2016款 外接 GTX-1080显卡】- 技嘉 AORUS GTX 1080 Gaming Box (附安装参考教程)
  17. FPGA IP核之RAM
  18. 专访丁奇:阿里云即将开源AliSQL,针对秒杀优化
  19. 特斯拉“踩坑”分时Linux?丰田/Mobileye选择“迎难而上”
  20. B2C、C2C电子商务分析

热门文章

  1. Android 8.1 修改锁屏显示时间
  2. static作用(修饰函数、局部变量、全局变量)
  3. 深入理解Android系统多用户机制
  4. 高效清洗即洗即穿!买洗烘一体洗衣机注意这几点
  5. 根据公司名称生成base64 logo(python文字转图片)
  6. matlab谐波仿真,基于MATLAB的瞬时无功理论谐波检测算法仿真研究
  7. php年龄,PHP 年龄计算函数(精确到天)
  8. mac配置chromedriver
  9. Oracle中全角字符串判断,半角字符串和全角字符串之间转换
  10. JavaScript--Cookie