Leetcode 6. Z 字形变换

【leetcode】第6题 Z字形变换,详细题解, C++实现,#6. ZigZag Conversion 这几天因为状态不太好,在这题上花了比较多的时间,记录一下。 因为题目很老了,Leetcode上关于此题的题解很多,然而很多题解解释得都不是很清楚,包括leetcode官方题解,题解中符号所表示的意思都不写明,无力吐槽,还是自己写一个当笔记吧。 题目详情 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,... 阅读详情

Leetcode 6. Z 字形变换

  1. Z 字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 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

class Solution {
    public String convert(String s, int numRows) {
        if(s.length() == 1||numRows < 2) return s;//剪枝
        StringBuffer sb = new StringBuffer();
        int curlength = 2 * numRows - 2;
        for(int i = 0;i < numRows;i++){
            for(int j = 0;j + i < s.length();j += curlength){	
            	//将在n的列上的数据加入字符串
                sb.append(s.charAt(j + i));
                //判断n的斜杆上的数据
                if(i != 0&&i != numRows - 1&&j + curlength - i < s.length()){
                    sb.append(s.charAt(j + curlength - i));
                }
            }
        }
        return sb.toString();
    }
}

执行结果:
通过
显示详情
执行用时:4 ms, 在所有 Java 提交中击败了87.32% 的用户
内存消耗:38.6 MB, 在所有 Java 提交中击败了97.35% 的用户

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”。 请你实现这个将字符串进行指定行数... 阅读详情

相关推荐

LeetCode 第6题:Z字形变换

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

Gemini的博客 642

【力扣LeetCode】6 Z 字形变换

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

Jiewang的博客 368

离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制

在进行深度学习算法的环境部署时,由于生产服务器被彻底隔离外网,只能把conda中env文件夹中的虚拟环境文件夹从开发机直接拷到Windows 服务器,但在运行labelimg等工具时可能报错,因此用conda-pack来解决。

weixin_44115575的博客 1427

#力扣 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

SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程

本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。

y2z3a4b5c的博客 870

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 213

LeetCode-6 Z字形变换

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

jacob2359的博客 277

告别转换超时!手把手教你用Allegro2Altium.bat搞定AD21导入Allegro 17.2文件

本文详细介绍了如何使用Allegro2Altium.bat工具解决AD21导入Allegro 17.2文件时的转换超时问题。通过理解转换机制、准备离线环境、执行完整转换流程及高级技巧,帮助工程师高效完成PCB设计文件转换,提升工作效率。

weixin_30378623的博客 423

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

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

yyh520025的博客 894

为什么AI时代的优秀组织,都在学习Meta的Pod结构?看完秒懂

当AI技术重塑产业格局,企业协作正面临前所未有的挑战——层级繁琐、跨部门内耗、迭代滞后,传统组织模式早已难以跟上技术革新的步伐。作为全球AI原生企业的标杆,Meta独创的Pod组织模式,用“小而美”的自治单元打破困局,成为AI时代高效协作的典范。本文将从定义、运作、价值到未来演进,全面拆解Pod模式,为企业组织变革提供可参考的思路与路径。德鲁克曾说:“组织的功能就是让平凡的人做平凡的事。”而Meta Pod打破这一局限,通过去中心化、指标导向、跨界融合,让优秀人才产生“化学反应”。

Kiss_AIHR的博客 1175

避开ns-3学习深坑:用sns3模块快速搭建GEO卫星通信仿真(附GitHub代码解读)

本文介绍了如何使用sns3模块快速搭建GEO卫星通信仿真环境,绕过复杂的ns-3底层细节。通过详细的Linux环境配置、sns3模块安装和示例代码解读,帮助开发者快速上手卫星通信仿真,并提供了常见问题的解决方案和性能优化技巧。

weixin_28720573的博客 439

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

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2439

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

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

ccd9287的博客 546

AI应用工程师面试指南与参考答案

摘要:AnkerAI应用工程师职位面向2024/25届毕业生,要求计算机相关专业背景,强调工程实现与技术探索能力。岗位职责包括全栈开发、AI技术整合(如大模型、图像识别)、团队AI赋能及系统优化。职位更看重编程实践能力(Python/Java等)和学习潜力,而非单纯算法知识。成功候选人将参与智能化产品开发,获得导师指导和技术成长机会。面试准备应聚焦项目经验展示、业务需求理解和技术解决方案能力,通过结构化回答和实操案例体现工程思维与创新潜力。

郑伟强dev的专栏 410

lwip-2.0.3

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

【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

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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

力扣第6题-Z字形变换

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

qq_42268998的博客 621

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IDEA的使用指南

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

力扣第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

力扣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的博客 371

leetcode 6 Z 字形变换 c++

6最长回文子串 补一个题目位置。https://leetcode-cn.com/problems/zigzag-conversion/ 这题是输出控制,实现了就行。 我的想法:这些字母的排列是按2∗(numRows−1)2*(numRows-1)2∗(numRows−1)的方式呈周期性的,所以对2∗(numRows−1)2*(numRows-1)2∗(numRows−1)取余就可以了。要注意num...

qq_38992914的博客 277

Java算法-力扣leetcode-6. Z 字形变换

leetcode-6. Z 字形变换 将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z 字形排列。 比如输入字符串为"PAYPALISHIRING"行数为3

javaphpsqlmysql的博客 591

Leetcode 6 Z字形变换

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

qq_30163473的博客 162

力扣LeetCode #6 Z字形变换(Convert)

- 题目描述 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 来源:LeetCode(https://leetcode-cn.com/problems/zigzag-convers

weixin_49155948的博客 219

LeetCode 6 Z 字形变换

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

Ailecccc的博客 143
上一篇: Leetcode 482. 密钥格式化
下一篇: Ecplise配置tomcat
EIUC_Thread
博客等级 码龄7年 96粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值