当前位置: 首页> 健康> 知识 > 114在线查询电话_app下载页面_华夏思源培训机构官网_成长电影在线观看免费

114在线查询电话_app下载页面_华夏思源培训机构官网_成长电影在线观看免费

时间:2025/9/29 15:13:45来源:https://blog.csdn.net/qq_57349657/article/details/142891846 浏览次数:0次
114在线查询电话_app下载页面_华夏思源培训机构官网_成长电影在线观看免费

题目

将一个给定字符串 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);

思路

代码

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 < s.length(); i++) {rows[loc] += s.substring(i, i + 1);if (loc == 0 || loc == numRows - 1) // 因为是Z字形,所以从上往下再从下往上down = !down;loc += down ? 1 : -1;}String ans = "";for (String row : rows) {ans += row;}return ans;}
}

性能

时间复杂度o(n)

空间复杂度o(n)

关键字:114在线查询电话_app下载页面_华夏思源培训机构官网_成长电影在线观看免费

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: