package csdn2;
import java.util.ArrayList;
import java.util.List;
/**Z字型变换
* @author Babulakaka
* @create 2021-06-22 20:39
*/
public class ZString {
public static void main(String[] args) {
String s ="abcdefg";
System.out.println(solution(s, 3));
}
public static String solution(String s,int numRows){
if(numRows<2){
return s;
}
List<StringBuilder> list = new ArrayList<StringBuilder>();
for(int i = 0; i< numRows;i++){
list.add(new StringBuilder());
}
int i=0,flag = -1;
for(char c : s.toCharArray()){
list.get(i).append(c);
if(i==0||i==numRows-1){
flag=-flag;
}
i+=flag;
}
StringBuilder stringBuilder = new StringBuilder();
for(StringBuilder b: list){
stringBuilder.append(b);
}
return stringBuilder.toString();
}
}
涉及到java中集合的使用List接口
List性质:其中元素是有顺序的,按照添加顺序排列,元素可以重复。
其中实现类ArrayList 相当于长度可变的数组。 LinkedList相当于双向链表。
List中的常用的方法有:
添加:
add(Object obj) 向集合中末尾添加元素
add(int i , Object obj) :向集合指定位置添加元素,若有元素,则该位置后后面位置的元素向后移动一位。
删除:remove(int index)删除指定位置上的数据
替换:set(int index,Object obj)替换指定位置上的元素
获取:get(int index)获取指定位置上的元素
子集获取:subList(int i,int j) 获取从i(包括)开始到j(不包括)的元素组成的集合。
其中还涉及字符串中的拼接 append。