LeetCode06_Z字形变换
先定义StringBuilder的List集合,第一个字母存在第一个StringBuilder中,依次第二行存第二个字母,然后当在最终行数反转存储,实现z形存储,最后把三个StringBuilder合在一起便是答案,下面上代码
class Solution {
public String convert(String s, int numRows) {
if(numRows == 1) return s;
List<StringBuilder> strs = new ArrayList<>();
for (int i = 0; i<Math.min(s.length(),numRows);i++){
strs.add(new StringBuilder());
}
boolean flag = false;
int a = 0;
for(char b: s.toCharArray()){
strs.get(a).append(b);
if(a == 0|| a == numRows -1){
flag = !flag;
}
if(flag){
a++;
}else{
a--;
}
}
StringBuilder yes = new StringBuilder();
for(StringBuilder str : strs){
yes.append(str);
}
return yes.toString();
}
}