class Solution {
public static String convert(String s, int numRows) {
if (numRows == 1) {
return s;
}
char[][] c = new char[numRows][s.length()];
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < s.length(); j++) {
c[i][j] = '!'; // 假设初值为字符 '!'
}
}
int row = 0, col = 0;
boolean down = true; // 是否向下
for (char ch : s.toCharArray()) {
c[row][col] = ch;
if (down) { // 向下
row++;
if (row == numRows) { // 到达最后一行,转向向上
row = numRows - 2;
col++;
down = false;
}
} else { // 向上
row--;
col++;
if (row == -1) { // 到达第一行,转向向下
row = 1;
col--;
down = true;
}
}
}
StringBuilder res = new StringBuilder();
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < s.length(); j++) {
if (c[i][j] != '!') {
res.append(c[i][j]);
}
}
}
return res.toString();
}
}
力扣:N 字形变换
最新推荐文章于 2024-10-11 12:01:25 发布
该代码段定义了一个名为Solution的类,包含一个convert方法,用于将字符串s按照指定的行数numRows进行Z字形排列。方法首先初始化一个二维字符数组,然后遍历字符串,根据down标志决定字符在矩阵中的位置。最后,将矩阵内容转换回字符串并返回。
摘要由CSDN通过智能技术生成