leetcode如何解决Z字形变换问题
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下leetcode如何解决Z字形变换问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!题目链接https://leetcode-cn.com/problems/zig
千家信息网最后更新 2026年10月31日leetcode如何解决Z字形变换问题
小编给大家分享一下leetcode如何解决Z字形变换问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
题目链接
https://leetcode-cn.com/problems/zigzag-conversion/
题目描述
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 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
解题方案
思路
标签:字符串
整体的思路是遍历字符串,遍历过程中将每行都看成新的字符串构成字符串数组,最后再将该数组拼接起来即可
如果numRows=1则说明当前字符串即为结果,直接返回
否则整个字符串需要经历,向下向右,向下向右,这样的反复循环过程,设定down变量表示是否向下,loc变量表示当前字符串数组的下标
如果down为true,则loc+=1,字符串数组下标向后移动,将当前字符加入当前字符串中
如果down为false,则表示向右,则loc-=1,字符串数组下标向前移动,将当前字符加入当前字符串中
时间复杂度:O(n),n为字符串s的长度
代码
Java版本
class Solution {
public String convert(String s, int numRows) {
if(numRows == 1)
return s;
int len = Math.min(s.length(), numRows);
String []rows = new String[len];
for(int i = 0; i< len; i++) rows[i] = "";
int loc = 0;
boolean down = false;
for(int i=0;i rows[loc] += s.substring(i,i+1);
if(loc == 0 || loc == numRows - 1)
down = !down;
loc += down ? 1 : -1;
}
String ans = "";
for(String row : rows) {
ans += row;
}
return ans;
}
}
JavaScript版本
/**
* @param {string} s
* @param {number} numRows
* @return {string}
*/
var convert = function(s, numRows) {
if(numRows == 1)
return s;
const len = Math.min(s.length, numRows);
const rows = [];
for(let i = 0; i< len; i++) rows[i] = "";
let loc = 0;
let down = false;
for(const c of s) {
rows[loc] += c;
if(loc == 0 || loc == numRows - 1)
down = !down;
loc += down ? 1 : -1;
}
let ans = "";
for(const row of rows) {
ans += row;
}
return ans;
};
画解
看完了这篇文章,相信你对"leetcode如何解决Z字形变换问题"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
字符
字符串
数组
字形
变换
下标
输入
输出
问题
变量
思路
版本
示例
篇文章
过程
题目
移动
复杂
中将
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
有格互联网科技
广州紫鲸互联网科技有限公司
科技互联网产品
互联网科技保险
碳银互联网科技
互联网科技ppt模板
互联网科技英文翻译
互联网巨头投资的硬核科技
玖二柒互联网科技公司待遇
阿里巴巴算科技企业还是互联网
昊天互联网科技有限公司
长沙茂晟互联网科技有限公司
卓翼科技产业互联网合作
济南有互联网科技公司吗
长沙互联网科技
广州富喜互联网络科技
互联网科技平台产品运营
版纳互联网科技选哪家
网互联网络科技
涨乐互联网科技
与互联网科技公司
科技服务与互联网
高科技与互联网
互联网科技的未来发展
互联网科技公司名称
赶超互联网科技 微信多开
江阴互联网智能科技产品进口
恒生互联网科技指数跳水
亳州好赞互联网科技有限公司