LeetCode第六题
题目,如图所示.
思路:
通过观察结果我们可以看到每一行就是一个字符串,所以我们现在的问题就是构建每一行的字符串,然后依次连接即可.
- 其实规律很简单,就是按将字符串依次排列的顺序,将其依次放在数组中,就像小时候玩的一条龙一样,放到对应的索引位置中即可,每个索引位置就是保存的每一行的字符串,然后从其数组中依次按索引取出,连接即可.
下面贴上代码:
public String convert2(String s, int numRows) {
if(numRows<2) return s;
String[] arr=new String[numRows];
int index=0;
//作为index下标的增量,顺着每次加1,逆着每次加-1.
int flag=-1;
//将每一行依次存储到数组中,
for(int i=0;i<s.length();i++){
if(index==0||index==arr.length-1) flag=-flag;
arr[index] += s.charAt(i);
index=index+flag;
}
//依次取出,进行连接
String res="";
for(int i=0;i<arr.length;i++){
if(arr[i]!=null)
res += arr[i].substring(4);
}
return res;
}