JAVA练习373- 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 1000s由英文字母小写和大写、,和.组成1 numRows 1000来源6. Z 字形变换 - 力扣LeetCode解题分析方法模拟 Z 字形排列标识法这种方法的核心思想是模拟 Z 字形排列的过程。我们为每一行创建一个字符串构建器StringBuilder然后按照 Z 字形的遍历顺序将每个字符添加到对应的行中。算法思路边界情况处理如果行数numRows为 1直接返回原字符串因为不需要变换。初始化行容器创建numRows个StringBuilder每个对应 Z 字形的一行。模拟遍历过程使用变量i表示当前所在的行索引从 0 开始。使用变量flag表示移动方向1 表示向下移动-1 表示向上移动。遍历字符串s的每个字符将当前字符添加到第i行的StringBuilder中。判断是否到达边界第一行或最后一行如果到达边界则反转方向flag -flag。更新行索引i flag。合并结果遍历所有行的StringBuilder将它们的内容依次拼接起来得到最终结果。代码实现带详细注释class Solution { public String convert(String s, int numRows) { // 边界情况如果只有一行直接返回原字符串 if (numRows 1) { return s; } // 1. 为每一行创建一个 StringBuilder 来存储该行的字符 ListStringBuilder rows new ArrayList(); for (int i 0; i numRows; i) { rows.add(new StringBuilder()); } // 2. 初始化当前行索引和移动方向 int currentRow 0; // 当前所在行从第 0 行开始 int direction -1; // 移动方向-1 表示向下1 表示向上初始设为 -1第一次会反转 // 3. 遍历字符串中的每个字符 for (char c : s.toCharArray()) { // 将当前字符添加到对应行的 StringBuilder 中 rows.get(currentRow).append(c); // 如果到达第一行或最后一行需要改变方向 if (currentRow 0 || currentRow numRows - 1) { direction -direction; // 反转方向 } // 根据方向更新当前行索引 currentRow direction; } // 4. 合并所有行的字符串得到最终结果 StringBuilder result new StringBuilder(); for (StringBuilder row : rows) { result.append(row.toString()); } return result.toString(); } }复杂度分析时间复杂度O(n)其中 n 是字符串 s 的长度。我们只需要遍历一次字符串每个字符只被处理一次。空间复杂度O(n)用于存储所有行的字符最坏情况下需要存储整个字符串。算法示意图以s PAYPALISHIRINGnumRows 3为例行 0: P A H N → PAHN 行 1: A P L S I I G → APLSIIG 行 2: Y I R → YIR 遍历顺序P(行0) → A(行1) → Y(行2) → P(行1) → A(行0) → L(行1) → I(行1) → S(行2) → H(行0) → I(行1) → R(行2) → I(行1) → N(行0) → G(行1) 最终结果PAHN APLSIIG YIR PAHNAPLSIIGYIR

相关新闻

Subtitle Edit终极指南:免费开源字幕编辑器的完整教程

Subtitle Edit终极指南:免费开源字幕编辑器的完整教程

Subtitle Edit终极指南:免费开源字幕编辑器的完整教程 【免费下载链接】subtitleedit the subtitle editor :) 项目地址: https://gitcode.com/gh_mirrors/su/subtitleedit 如果你正在寻找一款功能全面、完全免费的字幕编辑工具,Subtitle Edit正是…

2026/7/30 14:19:02阅读更多 →
3步搞定Windows顽固窗口:开源强制调整工具完全指南

3步搞定Windows顽固窗口:开源强制调整工具完全指南

3步搞定Windows顽固窗口:开源强制调整工具完全指南 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否遇到过那些"固执"的Windows窗口?有些程…

2026/7/30 14:19:02阅读更多 →
JAVA练习372- 反转字符串中的单词

JAVA练习372- 反转字符串中的单词

题目概览 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导…

2026/7/30 14:19:02阅读更多 →
湖科大教书匠计算机网络笔记:考研面试核心考点与分层排错实践

湖科大教书匠计算机网络笔记:考研面试核心考点与分层排错实践

1. 项目概述:一份来自湖科大教书匠的“硬核”网络笔记如果你正在学习计算机网络,尤其是为了考研(比如408统考)或者准备技术面试,那你大概率在网上搜索过“计算机网络笔记”。在众多资料中,“湖科大教书匠”…

2026/7/30 15:25:18阅读更多 →
远程控制软件哪个好用无延迟?2026年六款远控延迟画质稳定性实测横评

远程控制软件哪个好用无延迟?2026年六款远控延迟画质稳定性实测横评

远程控制软件哪个好用无延迟?2026年六款远控延迟/画质/稳定性实测横评“你这远程软件是不是又卡了?”——这是远程办公中最让人崩溃的一句话。远程控制软件哪个好用无延迟?这几乎是每个远程办公族最关心的问题。本文从延迟、画质、弱网稳定性…

2026/7/30 15:25:18阅读更多 →
Android端侧AI技术:从模型轻量化到性能优化

Android端侧AI技术:从模型轻量化到性能优化

1. 移动端智能化的技术演进与现状在移动计算领域,Android系统与AI技术的融合已经走过三个阶段发展历程。早期阶段(2015-2017)主要依赖云端计算,典型代表是Google Photos的图片分类功能;过渡阶段(2018-2020&…

2026/7/30 15:25:18阅读更多 →
销售团队拒绝AI?用这6个“非技术语言”可视化看板,3天赢得业务部门信任(附Figma模板下载)

销售团队拒绝AI?用这6个“非技术语言”可视化看板,3天赢得业务部门信任(附Figma模板下载)

更多请点击: https://codechina.net 第一章:AI 销售数据分析 AI 销售数据分析正从根本上重塑企业对客户行为、转化路径和销售效能的理解方式。通过融合机器学习模型与结构化/非结构化销售数据(如 CRM 记录、邮件日志、通话转录、网页埋点&am…

2026/7/30 15:25:18阅读更多 →
A星与DWA融合算法在机器人路径规划中的Matlab实现

A星与DWA融合算法在机器人路径规划中的Matlab实现

1. 项目背景与核心价值 在机器人路径规划领域,全局规划与局部避障的协同一直是个经典难题。A星算法作为全局路径规划的黄金标准,能够找到起点到目标点的最优路径,但对动态环境反应迟钝;而DWA算法擅长实时避障,却容易陷…

2026/7/30 15:25:18阅读更多 →
计算机模型解析人类行为:算法与心理学的融合

计算机模型解析人类行为:算法与心理学的融合

1. 项目概述:当计算机科学遇上人性解码 十年前我在调试神经网络时突然意识到,人类大脑的决策过程与机器学习中的反向传播算法惊人地相似。这个发现促使我开始系统性地用计算机模型解析人类行为,最终形成了这套融合计算科学、行为经济学与进化…

2026/7/30 15:23:18阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →