news 2026/9/10 5:32:23

模拟(六)6. Z 字形变换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模拟(六)6. Z 字形变换

6. Z 字形变换

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

比如输入字符串为"PAYPALISHIRING"行数为3时,排列如下:

P A H N A P L S I I G Y I R

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"

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

string convert(string s, int numRows);

示例 1:

输入:s = "PAYPALISHIRING", numRows = 3输出:"PAHNAPLSIIGYIR"
示例 2:
输入:s = "PAYPALISHIRING", numRows = 4输出:"PINALSIGYAHRPI"解释:P I N A L S I G Y A H R P I

示例 3:

输入:s = "A", numRows = 1输出:"A"

提示:

  • 1 <= s.length <= 1000
  • s由英文字母(小写和大写)、',''.'组成
  • 1 <= numRows <= 1000
class Solution { public: string convert(string s, int numRows) { int n = s.size(); if(numRows == 1) return s; // 如果只需要一行,直接返回s即可 vector<vector<char>> temp(numRows, vector<char>(n, '#')); // 二维数组 int i = 0, j = 0, cur = 0, falg = numRows-1; while(cur < n) { temp[i][j] = s[cur]; // 发现规律,每隔numRows-1就进行一次方向更改 if(falg > 0) { i++; // 利用falg--计数来控制方向 } else if(falg <= 0 && falg > 1-numRows) { i--; j++; } cur++; falg--; // 当falg减了俩次 numRows-1 时,回到最初的状态 if(falg == 1-numRows) falg = numRows-1; } string res; // 将数组用res进行接收 for(i = 0; i < numRows; i++) { for(j = 0; j < n; j++) { if(temp[i][j] != '#') res+=temp[i][j]; } } return res; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 5:15:40

QQ空间历史说说终极备份指南:3步轻松导出所有回忆

QQ空间历史说说终极备份指南&#xff1a;3步轻松导出所有回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在为QQ空间那些珍贵的说说无法完整保存而烦恼吗&#xff1f;GetQzonehis…

作者头像 李华
网站建设 2026/8/28 15:48:25

70、ASP.NET 缓存技术全解析

ASP.NET 缓存技术全解析 1. HttpCachePolicy 类概述 在 ASP.NET 中, HttpCachePolicy 类是使用 @OutputCache 指令的编程接口替代方案。它提供了直接设置与缓存相关的 HTTP 头的方法,这些头也可以通过 HttpResponse 对象的成员在一定程度上进行控制。 2. HttpCacheP…

作者头像 李华
网站建设 2026/8/29 2:39:15

效率飙升!Open-AutoGLM 自动化 pipeline 搭建全流程详解

第一章&#xff1a;效率飙升&#xff01;Open-AutoGLM 自动化 pipeline 搭建全流程详解 在现代AI工程实践中&#xff0c;构建高效、可复用的自动化 pipeline 是提升开发迭代速度的核心手段。Open-AutoGLM 作为一款开源的自动化大语言模型任务处理框架&#xff0c;支持从数据预处…

作者头像 李华
网站建设 2026/9/3 7:26:24

Vue核心特性09,Vue 生命周期详解:8 个阶段的执行时机与应用场景

在 Vue 开发中&#xff0c;理解组件的生命周期是掌握 Vue 核心原理的关键。Vue 组件的生命周期如同一个对象的 “从生到死”&#xff0c;从创建、挂载、更新到销毁&#xff0c;每个阶段都有其特定的执行时机和应用场景。Vue2 将生命周期划分为 8 个核心阶段&#xff08;也可细分…

作者头像 李华