暴力破解思路:
- 行数为多少行就定义长度为多大的字符串数组
- 遍历字符串,初始下表为一,字符串添加方向为增,每次下标移动时,将字符追加到该下标字符串后面,下标移动方向有两个转折点(一个是等于0的时候,将下标方向改为增,另一个是为最后一行的时候,将下标方向改为减)。
- 最后将字符串数组按顺序相加即为最后答案。
需要注意的是:如果行数为1,则不能转向,直接返回原字符串即可。
class Solution {
public String convert(String s, int numRows) {
if(numRows == 1) return s;
String [] temps = new String[numRows];
int index=-1,flag =1,rowMax = numRows -1;
//对结果集进行初始化
for (int i = 0; i < temps.length; i++) {
temps[i] = "";
}
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
index += flag;
temps[index]+=chars[i];
if(index == rowMax) flag = -1;
if(index == 0) flag =1;
}
String res ="";
for (String temp : temps) {
res+=temp;
}
return res;
}
}