/** * Author: Rupert Tears * Date: Created in 18:54 2022/11/12 * Description: Thought is already is late, exactly is the earliest time. * Z 字形变换 * 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 * 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串 * <p> * 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时; * 输出需要从左往右逐行读取,产生出一个新的字符串为:"PAHNAPLSIIGYIR"。 */ publicclassAigo_006 {
// 生成指定行数 stringbuilder for (inti=0; i < numRows; i++) { rows.add(newStringBuilder()); }
// 行数 inti=0; // 首位变换标识 intflag= -1;
// 遍历字符串 for (char c : str.toCharArray()) { // 向目标行添加字符 rows.get(i).append(c); if (i == 0 || i == numRows - 1) { // 首尾标志变换 flag = -flag; } // 行数变换 i += flag; }