做公司网站合同,高端网站建设网页设计,本溪 网站建设 做网站,长沙教育类网站建设题目#xff1a;
将一个给定字符串 s 根据给定的行数 numRows #xff0c;以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 PAYPALISHIRING 行数为 3 时#xff0c;排列如下#xff1a;之后#xff0c;你的输出需要从左往右逐行读取#xff0c;产生…题目
将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 PAYPALISHIRING 行数为 3 时排列如下之后你的输出需要从左往右逐行读取产生出一个新的字符串比如PAHNAPLSIIGYIR。请你实现这个将字符串进行指定行数变换的函数 示例
示例 1
输入s PAYPALISHIRING, numRows 3
输出PAHNAPLSIIGYIR示例 2
输入s PAYPALISHIRING, numRows 4
输出PINALSIGYAHRPI
解释 示例 3
输入s A, numRows 1
输出A
提示
1 s.length 1000
s 由英文字母小写和大写、, 和 . 组成
1 numRows 1000
图解 返回LCETOED
代码解题思路 public String convert(String s, int numRows) {if (numRows 2) {return s;//如果只有一行输出就直接返回s}//创建集合它里面的内容是一个StringButter类型//使用StringButter是为了方便字符串每一部分的拼接ListStringBuilder list new ArrayList();for (int i 0; i numRows; i) {list.add(new StringBuilder());}//每个位置都是 StringBuilderint index 0, flag -1;for (char c : s.toCharArray()) {//遍历s遍历结果为字符类型String s1 Character.toString(c);//将字符类型转换为字符串类形list.get(index).append(s1);//在index索引位置拼接s1if (index 0 || index numRows - 1) {flag -flag;//转折点flag要变号}index index flag;//下一个字符存储的集合位置}String res new String();for (int i 0; i list.size(); i) {res list.get(i);//将集合的每一部分全部拼接在一起}return res;//最终返回拼接后的字符串}