您现在的位置是:首页 > 数码 > 

LeetCode 6.z字形变换

2025-07-27 19:51:04
LeetCode 6.z字形变换 LeetCode 6.z字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 LEETCODEISHIRIG 行数为 时,排列如下: L C I R E T O E S I I G E D H 之后࿰

LeetCode 6.z字形变换

LeetCode 6.z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 LEETCODEISHIRIG 行数为 时,排列如下:

L   C   I   R
E T O E S I I G
E   D   H   

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDH”。

请你实现这个将字符串进行指定行数变换的函数:

string convert(string s, int numRows);

示例 1:
输入: s = “LEETCODEISHIRIG”, numRows =
输出: “LCIRETOESIIGEDH”

示例 2:
输入: s = “LEETCODEISHIRIG”, numRows = 4
输出: “LDREOEIIECIHTSG”

解释:

L     D     R
E   O E   I I
E C   I H   
T     S     G

来源:力扣(LeetCode)
链接:
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 思路解析

创建一个字符串数组,用来表示转化后每行的字符串,遍历字符串,把每个字符添加到对应位置。

  • 代码

class Solution {
public:string convert(string s, int numRows) {if(numRows==1)return s;int len=s.size();vector<string> sa(numRows);int count=0;int tag=0;for(int i=0;i<len;i){if(count==0)tag=1;if(count==numRows-1) tag=0;if(tag==1){sa[count]=s[i];}else if(tag==0){sa[count--]=s[i];}}string st;for(int i=0;i<numRows;i){st=sa[i];}return st;}
};
  • 结果分析


时间复杂度O(n)
空间复杂度O(n)

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/794887.html

相关标签:无
上传时间: 2024-01-10 12:38:04
留言与评论(共有 17 条评论)
本站网友 中国福利双色球
26分钟前 发表
“LDREOEIIECIHTSG” 解释
本站网友 女性不孕不育
28分钟前 发表
代码 class Solution { public
本站网友 proxy代理
30分钟前 发表
“LCIRETOESIIGEDH” 示例 2
本站网友 安哥拉首都
13分钟前 发表
商业转载请联系官方授权,非商业转载请注明出处
本站网友 今日财经新闻头条
9分钟前 发表
思路解析 创建一个字符串数组,用来表示转化后每行的字符串,遍历字符串,把每个字符添加到对应位置
本站网友 上海松江出口加工区
10分钟前 发表
输入
本站网友 中国建投
7分钟前 发表
思路解析 创建一个字符串数组,用来表示转化后每行的字符串,遍历字符串,把每个字符添加到对应位置
本站网友 财通证券同花顺
3分钟前 发表
请你实现这个将字符串进行指定行数变换的函数: string convert(string s
本站网友 南昌万达广场
30分钟前 发表
numRows = 4 输出
本站网友 什么是增量房
20分钟前 发表
“LDREOEIIECIHTSG” 解释
本站网友 失眠了怎么办
27分钟前 发表
从左到右进行 Z 字形排列
本站网友 41221
29分钟前 发表
请你实现这个将字符串进行指定行数变换的函数: string convert(string s
本站网友 马磊
11分钟前 发表
请你实现这个将字符串进行指定行数变换的函数: string convert(string s
本站网友 首选域
8分钟前 发表
比如输入字符串为 LEETCODEISHIRIG 行数为 时,排列如下: L C I R E T O E S I I G E D H 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDH”
本站网友 大众点评app
19分钟前 发表
“LDREOEIIECIHTSG” 解释
本站网友 香濡饮
26分钟前 发表
int numRows) {if(numRows==1)return s;int len=s.size();vector<string> sa(numRows);int count=0;int tag=0;for(int i=0;i<len;i){if(count==0)tag=1;if(count==numRows-1) tag=0;if(tag==1){sa[count]=s[i];}else if(tag==0){sa[count--]=s[i];}}string st;for(int i=0;i<numRows;i){st=sa[i];}return st;} }; 结果分析 时间复杂度O(n) 空间复杂度O(n)