青岛找网站建设公司好,网站建设业务流程,代理做网站合适吗,网络营销案例分析题题目描述#xff1a;
将一个给定字符串 s 根据给定的行数 numRows #xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时#xff0c;排列如下#xff1a; P A H N A P L S I I G Y I R 之后#xff0c;你的输出需要从左往…题目描述
将一个给定字符串 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); 思路 这里给出一个字符串要求我们以N型排列每个字符并且以行优先的顺序返回最终字符串。这里我们可以单独保存N型排列的每一行的字符最后拼接每一行的字符返回。至于如何保存就可以使用一个变量来对每一列进行遍历先从上到下到底部之后再从下往上按照每层的序号进行保存。注意要是给定的行数小于2那么就直接返回原字符串即可。
代码
class Solution {public String convert(String s, int numRows) {if(numRows2) {return s;}ListStringBuilder rowsnew ArrayListStringBuilder();for(int i0;inumRows;i) {rows.add(new StringBuilder());}int i0,flag-1;for(char c : s.toCharArray()) {rows.get(i).append(c);if(i0||inumRows-1) {flag-flag;}iflag;}StringBuilder resnew StringBuilder();for(StringBuilder row : rows) res.append(row);return res.toString();}
}