[Leetcode] 6. ZigZag Conversion 解题报告

激光雷达+相机标定避坑指南:手把手教你用KITTI数据完成坐标转换 本文详细介绍了激光雷达与相机标定的实战指南,利用KITTI数据集完成精准坐标转换。从数据准备、工具链搭建到标定矩阵加载与验证,再到坐标转换流水线的工程实现,提供了全面的避坑技巧和工程实践建议。特别强调了多传感器融合中的常见问题及解决方案,帮助开发者提升自动驾驶和机器人感知系统的环境感知精度。 阅读详情

题目:

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

P   A   H   N
A P L S I I G
Y   I   R
And then read line by line: "PAHNAPLSIIGYIR"

Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);
convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".


思路:

这是一道easy级别的题目,主要问题在于边界情况的考虑。有两种思路:

1、有几行就申请几个字符串,最后用一个字符串把一行的字符收集起来。在依次遍历字符串的时候,可以设置一个递增标记flag,可以为1或者-1,代表下一个是增加还是减少。该思路简单直观,但是需要额外的O(n)空间。

2、可以从第一行到最后一行依次构造。在构造每行字符串的过程中,我们都可以通过公式推导出该行字符串中的具体字符,因此可以直接构造。该思路的好处是空间复杂度为O(1)。

两种思路的时间复杂度都是O(n)。下面的代码实现的是第二种思路。


代码:

class Solution {
public:
    string convert(string s, int numRows) {
        if (numRows <= 1)   return string(s);

    	int column_num = std::ceil(s.length() / (2 * numRows - 2.0));
    	string zigzag;
    	int index = 0, length = s.length();
    
    	for (int i = 0; i < column_num; i++)    // output the first row
    	{
    		index = i * (2 * numRows - 2);
    		if (index < length)    zigzag += s[index];
    	}
    
    	for (int j = 1; j < numRows - 1; j++)   // output the middle rows
    	{
    		for (int i = 0; i < column_num; i++)
    		{
    			index = i * (2 * numRows - 2) + j;
    			if (index < length)   zigzag += s[index];
    
    			index = (i + 1) * (2 * numRows - 2) - j;
    			if (index < length)   zigzag += s[index];
    		}
    	}
    
    	for (int i = 0; i < column_num; i++)    // output the last row
    	{
    		index = i * (2 * numRows - 2) + numRows - 1;
    		if (index < length)     zigzag += s[index];
    	}
    
    	return zigzag;
    }
};



华为OD机试新系统真题 【简单表达式计算】 华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解 阅读详情

相关推荐

文章详细介绍了进行DoIP(DiagnosticoverInternetProtocol)测试的完整过程,包括样件的正确接线、CANoe软件的环境配置、端口设置、VLAN配置、IP和MAC地址的设定

关于Tester和DUT的地址,其实最主要的就是DUT的IP、MAC和逻辑地址,如果不知道Tester的IP、MAC和逻辑地址,可以配置为与DUT同一网段的就可以。ps:最重的是知道DUT的IP、逻辑、MAC地址,如果有VLAN也需要知道,Tester的地址可以根据DUT地址进行设定,其余的值可根据DoIP的报文查到相关参数。ps:如果在通信中没有建立VLAN,但是源地址和目的地址都填写正确,此时就要考虑是否是遗漏了VLAN,建立一个VLAN,在重新试试是否可通信。此处与硬件连接是相对应的,要注意!

qq_40965861的博客 1128

leetcode解题报告6. ZigZag Conversion

leetcode解题报告6. ZigZag Conversion题目地址 难度是medium题目描述给定一个字符串,按照zigzag的方式排,然后输出按这种方式排之后的顺序的字符串。 (比较复杂,但看例子就很明白了,具体看题目地址)我的思路刚看的时候,觉得是模拟类的题目,直接按zigzag的方式排就好了。但是,对字符串按某个方式排是比较抽象的,排成某个图案是让人来看的,但对机器或程序来说,还是以某

sysu_xiaoming的博客 468

Snort源代码编译 _ 采坑之旅(for Windows VS2015)

    系统环境:Windows7 sp1 x64     编译环境:VS2015 SP1     Snort版本:2.9.12     daq版本:2.0.6     Snort官网:https://www.snort.org/downloads#snort-downloads 背景     最近需要实现一个类似网络防火墙的产品,主要参考Snort源码,先花了点时间简单读了下网上比较流行的《...

magictong的专栏 8888

[leetcode] 6. ZigZag Conversion 解题报告

题目链接:https://leetcode.com/problems/zigzag-conversion/ The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a

小榕流光的专栏 1173

示波器实测RGMII信号:从125MHz时钟判断千兆模式,到时序抓取与PHY寄存器避坑

本文详细介绍了使用示波器实测RGMII信号的完整流程,包括125MHz时钟频率判断、时序参数测量及PHY寄存器配置避坑指南。通过实战操作和典型故障案例分析,帮助硬件工程师快速定位和解决千兆以太网接口的调试问题,提升通信稳定性。

weixin_30015371的博客 260

HT7036计量芯片SPI通信与数据读取实战解析

本文详细解析HT7036计量芯片的SPI通信与数据读取实战,涵盖SPI时序配置、命令发送、数据读取及常见问题排查。重点介绍如何通过SPI接口与MCU通信,实现电能数据的稳定采集与处理,为智能电表等应用提供实用解决方案。

vscode5coder的博客 264

【LeetCode】6. ZigZag Conversion解题报告(Python)

解题思路: 这道题目的目的是将字符串摆成一个之字型,就是将字符串竖着排列,然后一列是长的一列是短的,长的列为numRows短的为numRows-2。所以用一个数组来存储每一行的字符,用变量row来记录当前访问到的行,依次将字符串s中的字符放入不同的行,然后将所有行的字符串串联起来。 代码说明: 1、zigzag = ['' for i in range(numRows)]表示产生numRow...

L141210113的专栏 846

OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:核心载体:以文件夹为单位,不管多简单的 Skill,文件夹里都必须有 SKILL.md 文件——这是 AI 识别技能的唯一依据,少了它,再完善的代码也没用;

haolove527的专栏 7024

LeetCode解题报告 6. ZigZag Conversion[easy]

题目描述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H

conniemessi的博客 450

【图像超分】论文精读:Enhanced Deep Residual Networks for Single Image Super-Resolution(EDSR和MDSR)

最近对超分辨率的研究随着深度卷积神经网络 (DCNN) 的发展取得了进展。特别是,残差学习技术表现出更好的性能。在本文中,我们开发了一个增强的深度超分辨率网络(EDSR),其性能超过了当前最先进的 SR 方法。我们模型的显着性能改进是由于通过删除传统残差网络中不必要的模块进行优化。当我们稳定训练过程时,通过扩展模型大小可以进一步提高性能。我们还提出了一种新的多尺度深度超分辨率系统(MDSR)和训练方法,该方法可以在单个模型中重建不同缩放因子的高分辨率图像。所提出的方法在基准数据集上比最先进的方法表现出更好的

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 7923

3、神经网络在汽车中的应用

本文探讨了神经网络在现代汽车中的多种应用,包括防抱死制动系统(ABS)、燃油喷射系统、自动驾驶辅助系统以及发动机故障诊断。通过详细分析这些系统的具体工作流程和神经网络的集成方式,展示了神经网络如何提升车辆的安全性、效率与智能化水平。

moss5的博客 233

LeetCode 6. ZigZag Conversion 解题报告

LeetCode 6. ZigZag Conversion 解题报告

daqiang95的博客 375

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 862

【LeetCode】6.ZigZag Conversion(Medium)解题报告

【LeetCode】6.ZigZag Conversion(Medium)解题报告题目地址:https://leetcode.com/problems/zigzag-conversion/description/ 题目描述:   The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of row

郝春雨的博客 241

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode(6) ZigZag Conversion解题报告

z型转换

jackllvv的博客 210

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【LeetCode】ZigZag Conversion 解题报告

【题目】 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N

跳出温水的青蛙 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【力扣Leetcode题解系列之0006——Zigzag Conversion:Z 字形变换解题攻略】

摘要: 力扣6题"Z字形变换"要求将字符串按Z形排列后按行读取。通过推导字符位置规律(首尾行固定间隔、中间行交替间隔),给出了Python、Java、C、C++和Go的实现方案。算法时间复杂度O(n),空间复杂度O(1)。该题考察逻辑思维与规律发现能力,通过多语言实现展示了通用解法,并可通过调整行数扩展题目难度。

youngerwang的博客 886

[LeetCode]ZigZag Conversion

题目要求: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N A

zhouworld16的专栏 1万+

Leetcode——6. ZigZag Conversion

题目原址 https://leetcode.com/problems/zigzag-conversion/description/ 题目描述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display thi...

想当厨子的程序媛 305

LeetCode 6. ZigZag Conversion Python3

LeetCode 6. ZigZag Conversion Python3 Description 点击查看题目 The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixe...

与你的博客 322

LeetCode: ZigZag Conversion 解题报告

ZigZag ConversionThe string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P   A   H  ...

weixin_34133829的博客 193

[LeetCode] 006. ZigZag Conversion (Easy) (C++/Java/Python)

[LeetCode] 006. ZigZag Conversion (Easy) (C++/Java/Python)

水果君の日常 3208

6. ZigZag Conversion [easy] (Python)

题目链接https://leetcode.com/problems/zigzag-conversion/题目原文 The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fix

Coder_Orz的博客 3840

Leetcode #6 ZigZag Conversion ZigZag翻转 解题小节

(http://img.blog.csdn.net/20160309105520799)#1 原题 ZigZag Conversion 原题The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this patt

MebiuW的专栏 678

LeetCode Notes_#6 Zigzag Conversion

LeetCode Notes_#6 Zigzag ConversionLeetCode Contents 题目思路和解答思路解答要注意的一些点参考 题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want...

baji9701的博客 194

【leetcode】6. ZigZag Conversion

题目: The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N A P L S ...

zxc120389574的博客 263
上一篇: [Leetcode] 5. Longest Palindromic Substring 解题报告
下一篇: 计算几何学习笔记
魔豆Magicbean
博客等级 码龄19年 146粉丝 742原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值