Leetcode 6. Z 字形变换

Z形打印矩阵 一、题目描述 给定一个矩阵matrix,按照“Z”字形的方式打印这个矩阵。 样例输入: 1 2 3 4 5 6 7 8 9 10 11 12 输出: 1 2 5 9 6 3 4 7 10 11 8 12 二、思路及其代码实现 分析:直接关注斜线方向(左下到右上,右上到左下)的打印,遇到边界决定横向走还是竖着走。 关键:如何选取变量。 这里选了三个: curRow —— 当前元素的行... 阅读详情

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

比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:

L C I R
E T O E S I I G
E D H N
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。

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

string convert(string s, int numRows);
示例 1:

输入: s = “LEETCODEISHIRING”, numRows = 3
输出: “LCIRETOESIIGEDHN”
示例 2:

输入: s = “LEETCODEISHIRING”, numRows = 4
输出: “LDREOEIIECIHNTSG”
解释:

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

tips: 对原字符串进行一次遍历,很容易知道该位置的字符属于那一行,
最后把每一行的字符拼接起来即可,时间复杂度O(n), 空间复杂度O(n)


class Solution {
public:
    string convert(string s, int numRows) {
        if(numRows==1) {
            return s;
        }
        vector<string> rows(numRows);
        int count=0;
        int add=1;
        for (int i = 0; i < s.size(); i++)
        {
            rows[count]+=s[i];
            count+=add;
            if(count==numRows||count<0) {
                add=-add;
                count=count+add*2;
            }
        }
        string res="";
        for (int i = 0; i < rows.size(); i++)
        {
            for (int j = 0; j < rows[i].size(); j++)
            {
                res+=rows[i][j];
            }
        }
        return res;
    }
};
【leetcode】第6题 Z字形变换,详细题解, C++实现,#6. ZigZag Conversion 这几天因为状态不太好,在这题上花了比较多的时间,记录一下。 因为题目很老了,Leetcode上关于此题的题解很多,然而很多题解解释得都不是很清楚,包括leetcode官方题解,题解中符号所表示的意思都不写明,无力吐槽,还是自己写一个当笔记吧。 题目详情 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,... 阅读详情

相关推荐

python【力扣LeetCode算法题库】6-Z 字形变换

Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数...

NJU phd 在读。 732

Z字形打印矩阵

打印例子如下,我们设置两个点分别是A、B。每次A往绿色箭头移动一步,B往蓝色箭头移动一步,所要打印的就是A、B连线之间的元素,但是要区分下方向(斜向上或者斜向下),打印结果为 1,2,5, 9 ,6, 3, 4 ,7, 1 0, 11, 8, 12 public class PrintZMatrix { public static void PrintZ(in...

Cheng 1166

LeetCode 第6题:Z字形变换

通过这些例子,我们可以看到Z字形变换的过程其实就像是我们在操控一条蛇,让它在指定的行数之间上下游走。这个算法的时间复杂度是O(n),因为我们只需要遍历一次字符串,空间复杂度也是O(n),因为我们用了额外的行数组来存储结果。希望通过这些例子的讲解,大家能更好地理解这个有趣的题目。

Gemini的博客 642

输出图案:Z字形

输出图案:Z字形

dn2021c216的博客 1803

arcgis根据矢量范围统计栅格数据众数、最大值、均值、中位数、最小值、少数等

像元统计数据 根据多个栅格数据计算每个像元的统计数据。 可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。 https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/spatial-analyst-toolbox/an-overview-of-the-local-tools.htm ...

GIS哼哈哈的博客 6万+

从0到1,快速理清 | DeepSeek Harness

DeepSeek推出自研Harness开发平台,主打"一切皆插件"理念,将AI执行能力模块化为可自由组合的插件体系。带你从0到1,快速了解开发链路。

IT学习博客 672

(每日一练c++)CC143 Z字形字符串

描述 字符串"ZXYZXLISHIRING"写成3行的Z字形的样式如下: Z X H N X Z L S I I G Y I R 按行读这个Z字形图案应该是 "ZXHNXZLSIIGYIR" 请编写代码完成将字符串转化为指定行数的Z字形字符串: 示例1 输入: "AB",2 复制返回值: "AB" // 定义nRows长度的stringbuffer数组,存放每一行的结果 // 先从0~nRows,再从nRows-2~0 public class Solu

weixin_39827856的博客 450

英语语法-句法

摘要:本文系统梳理了英语句法知识,重点解析了五种基本句型及其扩展结构。内容包括句子类型(陈述句、疑问句、祈使句、感叹句)、复合句构成(从句分类与连词使用)、特殊句型(倒装、强调、引语转换)等。特别强调句子成分分析技巧,指出每种句子成分可由不同词法单元充当,需掌握成分识别与划分方法。文章还提供了往期语法系列链接,形成完整的英语语法学习体系,帮助读者建立从词法到句法的系统认知框架。

STCNXPARM的博客 8798

Leetcode 热题HOT 100 6.Z字形变换(C++)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Leetcode HOT 100 6.Z字形变换 题目 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn.

qq_51933234的博客 1098

用Verilog在FPGA上做个电子琴:从矩阵键盘到蜂鸣器的完整实现(附代码)

本文详细介绍了如何使用Verilog在FPGA上实现一个完整的电子琴系统,涵盖矩阵键盘扫描、音调生成和蜂鸣器驱动等核心模块。通过模块化设计和PWM调制技术,开发者可以构建一个可交互的音乐播放器,项目代码完整且易于扩展,适合FPGA初学者和数字逻辑设计爱好者实践。

weixin_29191669的博客 401

最全的Hermes安装教程以及Hermes WebUI安装部署和配置指南

* 直接执行命令**

小石头的专栏 1074

【力扣LeetCode】6 Z 字形变换

题目描述(难度中) 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRow...

Jiewang的博客 368

【Android Performance】Android CPU调度模式详解:从performance到schedutil的Governor调优指南

本文系统讲解Android/Linux系统中的CPU频率调节策略(Governor),涵盖六大调度模式的底层工作原理:performance(性能优先)、powersave(省电优先)、conservative(保守调频)、ondemand(按需调频)、userspace(手动控制)以及schedutil(调度器驱动)。文中深入拆解每种Governor的调频决策逻辑、上升/下降曲线的差异、适用场景与选型建议,并配以实操命令演示如何查看可用Governor列表、动态切换调度模式以及多Cluster架构下的统一

weixin_44081096的博客 430

#力扣 LeetCode6. Z 字形变换 @FDDLC

题目描述: 6. Z 字形变换 - 力扣(LeetCode) (leetcode-cn.com) 自测用例: "PAYPALISHIRING" 3 "PAYPALISHIRING" 4 "A" 1 "PAYPALISHIRING" 1 "PAYPALISHIRING" 2 "PAYPALISHIRING" 4 "PAYPALISHIRING" 5 "PAYPALISHIRING" 6 "a,b" 1 "a,b" 2 "a,b" 3 "a,b" 4 "a,b" 5 Java代码: c..

LiuXingchang的博客 1373

【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略

LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。

byte轻骑兵的技术小窝 2万+

真正的工业级环形缓冲区(Circular Buffer)完整实现细节

永远不要永远不要ToArray()或AddRange()永远返回或两段Span永远用_head_tail% Capacity实现环形照着上面这套代码改,你的系统将彻底告别内存爆炸,从“实验室玩具”变成“产线战神”!需要我给你一个支持两段绘制的完整实现吗?

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 127

LeetCode-6 Z字形变换

题目:6. Z字形变换 难度:中等 分类:字符串 解决方案:字符串遍历 今天我们学习第6题Z字形变换,这是一个字符串的中等题,像这样字符串的题目经常作为面试题来考察面试者算法能力和写代码能力,因此最好能手写出该题。下面我们看看这道题的题目描述。 题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为"LEETCODEISHIRING"行数为3时,...

jacob2359的博客 277

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

6. Z 字形变换【 力扣(LeetCode) 】

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。

yyh520025的博客 894

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

golang力扣leetcode 6.Z字形变换

6.Z字形变换6.Z字形变换题解代码 6.Z字形变换 6.Z字形变换 题解 Z 字形变换(清晰图解),这个思路确实吊,别的都想复杂了 代码 package main func convert(s string, numRows int) string { if numRows == 1 || numRows >= len(s) {//只有一行,或者行数超过字符串长度 return s } res := make([][]byte, numRows) i, flag := 0, -1 f

清风 458

【力扣-6】Z字形变换 python解题思路

【力扣-6】Z字形变换 python解题思路。

ccd9287的博客 545

【LeetCode #6 题解】 Z 字形变换

@toc 一、题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int

|~~~热爱生活、努力学习的小伙汁~~~| 623

力扣第6题-Z字形变换

输入:s = "PAYPALISHIRING", numRows = 3。输入:s = "PAYPALISHIRING", numRows = 4。输入:s = "A", numRows = 1。,以从上往下、从左到右进行 Z 字形排列。输出:"PAHNAPLSIIGYIR"输出:"PINALSIGYAHRPI"

qq_42268998的博客 621

力扣6.Z字形变换(java)

力扣6.Z字形变换题目思路代码 LeetCode笔记汇总 题目 思路 先考虑特殊情况:当行数为1时,只有一行,即直接输出s即可 当行数大于1时,由于涉及到了较多的字符串拼接,所以使用StringBuilder来处理 主要的思路为按行读取字符,则一共需要读取numRows行。观察图像我们可以发现图像结构的规律为2*numRows-2为一组。 我们以第i行(i从0开始)为例分析:首先每一组的第i个如果存在则一定就是第i行的字符。 当i不为第0行或第numRows行时,则还需添加位于z的斜边的字符 代码 c

k_surge的博客 370

力扣第6题:Z 字形变换

问题描述: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换...

elinice 827

力扣6. Z 字形变换

第九十五天 --- 力扣6. Z 字形变换题目一思路:直接模拟代码 题目一 力扣:6. Z 字形变换 思路:直接模拟 1、博主写这道题的时候,看题一小时,写题十分钟,这个题太TMD,抽象了,样例也没看懂。。。。。 2、我们这道题只要看懂样例就能很简单的写出来。 3、 来解读一下样例的意思,我们按照这个顺序去读,就能读出原本的顺序,所以现在就相当于有一个numRows长度的数组,我们要按照顺序读取原本字符串,并按照上上面的顺序放进相应的数组下标中去,最后把数组中各个下标中存的string从左到右加在一起

qq_45678698的博客 762
上一篇: Leetcode 98. 验证二叉搜索树
下一篇: Leetcode 994. 腐烂的橘子
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值