LeetCode 6. ZigZag Conversion

LeetCode 6. ZigZag Conversion(Z字形变换) 题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:&amp 阅读详情

LeetCode 6. ZigZag Conversion

Solution1:我的答案
总是因为各种各样的傻逼错误导致不能AC,脚踏实地很重要!
这个笨方法实在是有点慢。

class Solution {
public:
    string convert(string s, int numRows) {
        string res = "";
        if (!s.size() || !numRows) return res;
        if (numRows == 1) return s;
        int str_len = s.size();
        int cycle = str_len/(2*(numRows-1));//完整循环的个数,可能会有剩余
        for (int i = 0; i < numRows; i++) { //行数
            if (i == 0) {//处理第一行
                int j = 0;
                for (j = 0; j < cycle; j++) //完整循环内的处理
                    res += s[2*(numRows-1)*j];
                //剩余部分处理
                if (2*(numRows-1)*j < s.size())
                    res += s[2*(numRows-1)*j];
            } else if (i > 0 && i < numRows - 1) { //第2至numRows-2行
                int j = 0;
                for (j = 0; j < cycle; j++) { //完整循环内的处理
                    res += s[2*(numRows-1)*j + i];
                    res += s[2*(numRows-1)*j + i + 2*(numRows-1) - 2*i];    
                }
                //剩余部分处理
                if (2*(numRows-1)*j + i < s.size())
                    res += s[2*(numRows-1)*j + i];
                if (2*(numRows-1)*j + i + 2*(numRows-1) - 2*i < s.size())
                    res += s[2*(numRows-1)*j + i + 2*(numRows-1) - 2*i];
            } else if (i == numRows - 1) { //第numRows-1行
                int j = 0;
                for (j = 0; j < cycle; j++) //完整循环内的处理
                    res += s[2*(numRows-1)*j + numRows - 1];
                //剩余部分处理
                if (2*(numRows-1)*j + numRows - 1 < s.size())
                    res += s[2*(numRows-1)*j + numRows - 1];
            }
        }
        return res;
    }
};

Solution2:参考答案
参考网址:http://www.cnblogs.com/grandyang/p/4128268.html
大佬真牛逼。。
代码真简洁!!

class Solution {
public:
    string convert(string s, int nRows) {
        if (nRows <= 1) return s;
        string res = "";
        int size = 2 * nRows - 2;
        for (int i = 0; i < nRows; ++i) {
            for (int j = i; j < s.size(); j += size) {
                res += s[j];
                int tmp = j + size - 2 * i;
                if (i != 0 && i != nRows - 1 && tmp < s.size()) res += s[tmp];
            }
        }
        return res;
    }
};
Red Hat Enterprise Linux 9.2 安装Red Hat Enterprise Linux 9.2 阅读详情

相关推荐

Windows Server安装Intel I219-V网卡驱动完整教程

在Windows Server系统上安装Intel I219-V网卡驱动的方法。

小白成长历程 5172

leetcode 6 ZigZag Conversion C++

这道题最大的难点在理解题意。。。 它是一个折线图样子的。 string convert(string s, int numRows) { string result = ""; int len = s.size(); if(len == 0) return result; if(numRows == 0) return resul

wcxdell的专栏 875

西门子S7-200 SMART PLC控制伺服电机

以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。

CHUXUEZHE8210的博客 6424

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

Altium Designer实战:手把手教你设计智能车竞赛疯狂电路组赛道(附封装库)

本文详细介绍了使用Altium Designer软件进行智能车竞赛“疯狂电路”组赛道设计的全流程实战指南。从理解比赛规则、搭建设计环境、创建专用元器件封装库,到电路布局、路径规划及设计输出验证,手把手教你高效完成符合计分标准的赛道图纸设计,并附上实用的封装库管理方法。

alice7model的博客 1320

[Linux项目实践] LCD Panel的硬件分析及调试

LCD硬件分析 项目使用3.5” TFT-LCD并且支持触摸控制。LCD的硬件可从几个方面学习:1)查看LCD的硬件连线。2)查看数据手册了解寄存器的控制。3)查看LCD DATASHEET了解硬件操作 1)LCD硬件连线 在图中有33个引脚,22根数据引脚和9根控制引脚。 LCD的工作原理:像素点是从左至右,从上至下逐个显示,LCD控制寄存器会从从内存中的framebuffer通

Terry_Yuan的技术专栏 3023

Leetcode 6 ZigZag Conversion

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...

博学 笃志 切问 近思 159

【openEuler容器镜像部署指南】

【代码】【List集合排序 】

weixin_43878094的博客 1111

leetcode解题报告6. ZigZag Conversion

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

sysu_xiaoming的博客 468

Axure RP 10表单数据提交制作

本文介绍了如何使用Axure RP 10实现表单数据提交。

Peppaaa的博客 990

(一)DaVinci Developer AutoSAR工具 如何新建SWC、Component、RTE工程,超级详细步骤,赚到

​ 1,创建SWC,第一步需要创建一个App组件类型,首先点击Object Brower菜单,然后左键Application Component Types 选项,然后右键New Application Component Type,组件类型的作用是来后续实例一个Compoent 2、 Properties 选项卡中Nane中输入Type的名字,注意根据规范命名规则已CtAp开头,其他默认就好 ​

weixin_42602687的博客 3574

LeetCode 6 :Zigzag Conversion

LeetCode 6 :Zigzag Conversion题目大意给定一个字符串,将其按照Z字形排列成给定行,逐行输出排列后的字符串。The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern

Cecilia_whf的博客 509

彻底讲透 SAP 中的 client-safe:从 CDS、AMDP 到 ABAP Cloud 的客户端隔离设计

SAP系统中的client-safe概念定义了技术边界:访问client-dependent数据的对象必须确保只看到单个client数据,而访问client-independent数据的对象则天然满足条件。这一原则直接影响CDS视图、AMDP等核心组件,并与ABAP Cloud开发模型紧密集成。在业务系统中,client isolation要求用户只能看到当前登录client的数据。SAP通过语言版本、对象规则和静态检查强制执行这一约束,特别是在ABAP Cloud开发中,AMDP方法和发布的API必须满足

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3261

LeetCode题目:6.ZigZag Conversion

LeetCode题目:6.ZigZag Conversion 原题链接:https://leetcode.com/problems/zigzag-conversion/description/ 解题思路:对指定行row,找出逻辑,得到公式,然后进行计算即可。核心思想:对第一行和第row行,一个之字有两个字符,相邻字符的距离为2(row-1)。对第i行,一个之字有三个字符,某字符到下两个字符的距离

MyCodecOdecoDecodE的博客 380

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

VC中sqlite的使用

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

LeetCode 6. ZigZag Conversion , Z 字形变换 C#

前言 本文介绍了 LeetCode 第 6 题 , “ZigZag Conversion”, 也就是 “Z 字形变换” 的问题. 本文使用 C# 语言完成题目,介绍了多种方法供大家参考。 题目 English LeetCode 6. ZigZag Conversion The string “PAYPALISHIRING” is written in a zigzag pattern on a ...

wf824284257的博客 930

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

leetCode 6:ZigZag Conversion

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 legib

tuobadon的专栏 425

【Leetcode】6. ZigZag Conversion

题目地址: https://leetcode.com/problems/zigzag-conversion/ 比较直观的做法是对每行分别统计,然后最后汇总。代码如下: import java.util.ArrayList; import java.util.List; public class Solution { public String convert(String s, int ...

数学、算法爱好者的博客 254

Leetcode 6:ZigZag Conversion

原题链接:ZigZag Conversion   一开始的思路是根据所给字符串及 Z 行数计算出末元素所在的行列数,进而用二维数组来计算blabla…但算到后期发现不用这么复杂。。。 原理如下图 对于给定的 z 型串,我们取 2*numRows-2为一个周期(除数),以字符串 s 的长度为被除数;z 型串的第一行元素所在位置除以除数,余数皆为 1,第二行元素所在位置除以除数余数,余数为 0 或 ...

wayne17的博客 300

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

大三狗现在才努力还不算晚吧?! 3348

基于Docker Compose构建个人开发者中转站:文件共享、内网穿透与轻量服务部署

在软件开发与运维实践中,容器化技术通过封装应用及其依赖,实现了环境的一致性与部署的可移植性,极大地简化了跨平台服务的交付流程。其核心原理在于利用操作系统层面的虚拟化,为每个应用提供独立的运行环境,从而解决了依赖冲突和环境差异的难题。这一技术为个人开发者和小型团队带来了显著的工程价值,使得在有限资源下快速搭建、测试和管理多种服务成为可能。典型的应用场景包括临时的文件同步与共享、内网服务的公网暴露、以及轻量级应用的原型部署。本文聚焦于如何整合Docker、Nginx Proxy Manager和File Bro

weixin_34008784的博客 396

Leetcode:6. ZigZag Conversion

Leetcode:6. ZigZag Conversion 参考:http://blog.csdn.net/linhuanmars/article/details/21145039#reply,找规律 public String convert(String s, int nRows) { if(s == null || s.length...

哎呀妈呀脑壳疼脑壳疼 151

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

题目: 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]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...

chenshengta6990的博客 113
上一篇: LeetCode 59. Spiral Matrix II
下一篇: LeetCode 68. Text Justification
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值