6. Z 字形变换(给定字符串,画N后逐行拼接成新字符串)
一.将给定字符串按给定行数 画N ,输出从左往右逐行读取拼成的新字符串
比如输入字符串为 "LEETCODEISHIRING"
行数为 3 时,排列如下:
L C I R E T O E S I I G E D H N
之后输出:"LCIRETOESIIGEDHN"
二.思路
一个数组list n行 一行一个字符串元素
遍历给定的字符串 每次放的地方list[index] index碰到0会 +1+1 碰到n-1 会-1-1 可以取一个方向dir=+-1 index为index加上这个反向
最后再将字符串拼接成新的字符串
注:当字符串还不够拐弯的时候 行数就是1行的时候
/*** @param {string} s* @param {number} numRows* @return {string}*//*** 一个数组 三个字符元素 遍历 012 往里放 10 12 10这样放*/
var convert = function (s, numRows) {if (s == null || s.length < numRows || numRows == 1) { return s; }let list = new Array(numRows).fill('');let dir = 1;let index = 0;for (let i = 0; i < s.length; i++) {list[index] += s[i];index += dir;if (index == 0 || index == numRows - 1) dir = -dir;}return list.join('');
};
三.知识点
按行排序:
初始化几个非空行,
从左到右迭代 s,将每个字符添加到合适的行。可以使用当前行index和当前方向dir这两个变量对合适的行进行跟踪。
只有当我们向上移动到最上面的行或向下移动到最下面的行时,当前方向才会发生改变。
6. Z 字形变换(给定字符串,画N后逐行拼接成新字符串)相关推荐
- [模拟|字符串] leetcode 6 Z字形变换
[模拟|字符串] leetcode 6 Z字形变换 1.题目 题目链接 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHI ...
- Z 字形变换 C++实现 java实现 leetcode系列(六)
Z 字形变换 java实现 C++实现 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...
- java z+_Java Z 字形变换
– 题目:Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: ...
- leetcode题库:6. Z字形变换
题目: /**题目:6. Z字形变换(题目地址:https://leetcode-cn.com/problems/zigzag-conversion/description/) * 将字符串 &qu ...
- leetcode第六题Z字形变换心得记录
算法学习之路-坚持走下去 Z字形变换 题目描述 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行 ...
- LeetCode——6. Z 字形变换
6. Z 字形变换(中等难度) 题目描述: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING ...
- 图解LeetCode06:Z字形变换
LeetCode06:Z字形变换 将一个给定字符串s根据给定的行数numRows,以从上往下.从左到右及进行Z字形排列 比如输入字符串为"PAYPALISHIRING"行数为3时, ...
- Java Z 字形变换
- 题目:Z 字形变换 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: ...
- Java算法题:Z字形变换
Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...
最新文章
- python与excel表格-xlrd/xlwt - python与excel表格交互
- WRF-Chem User Guide3.9.1.1 部分内容翻译
- MariaDB的Aria存储引擎
- linux fedora35指定某个固定的启动项作为默认的启动项
- 三十二、Java集合中的ArrayList
- 手机端适应_不轻易透露的超强技巧!详解iVX中怎样做设备自适应
- 男子借款70万前后还了1600万仍未还清,如何避免套路贷?
- java interestops_Java Channel.setInterestOps方法代码示例
- mysql8.0.13 32位下载_MySQL8.0下载-MySQL数据库8.0下载 v8.0.11官方版(32位/64位)--pc6下载站...
- 西河某人_如何使用增强现实祝某人生日快乐
- 智慧农业、数字农业、农产品交易、发布供应、采购详情、报价列表、交易订单、供应大厅、采购大厅、发布采购、采购需求、采购订单、在售商品、出售订单、账户中心、洽谈列表、入驻申请、Axure原型、农业数据看板
- 国外游戏开发商吐槽:开发VR游戏付账单的钱都赚不到
- 网络安全 Security+(SY0-601)学习笔记
- 把c的char数组转换为python image的代码
- 【 Codeforces Round #395 (Div. 2) D】Timofey and rectangles【四色定理】
- Juniper交换机配置命令_学习笔记
- 如何搭建职业教育智慧课堂?
- 技术驱动创新,带来的创业机遇
- 施巍松老师组20-21年工作
- 我的JQuery动画
热门文章
- SD卡驱动(基于XS128)
- 别再提程序员应届年薪20万了,人工智能已经年薪60万了!
- 九步教你笔记本开箱验机 联想拯救者安全下车
- 论文的研究方法实验方案技术路线
- level set 介绍4(水平集方法)
- A/libc:fatal signal 11(SIGSEGV).code 1, fault addr 0x0 in tid 26488 (VideoEncoder)
- 百度地图 坐标偏移、覆盖物偏移解决方案
- 咕咚要和keep们刚正面,闪电战还是持久战?
- 彻底删除软件,删除注册列表信息
- shouldoverrideurlloading为什么有时候不走_心理学:为什么很多看似不般配的人,往往都能走到最后?...