[5.27+28] 字符串操作
一、[leetcode:6] z字形变换
(6. Z 字形变换 - 力扣(LeetCode) (leetcode-cn.com))
将一个给定字符串
s
根据给定的行数numRows
,以从上往下、从左到右进行 Z 字形排列。
题解一:直接用list来模拟
最开始想的是放入String,但是发现不知道怎么加,然后换成了Character,代码有点长
class Solution {
public String convert(String s, int numRows) {
if(numRows < 2) return s;
List<List<Character>> temp = new ArrayList<>();
for(int i=0;i<numRows;i++){
temp.add(new ArrayList<Character>());
}
int index = 0;
int flag = 1;
for (int i = 0; i < s.length(); i++) {
if (index == 0) flag = 1;
if (flag == 1) {
temp.get(index).add(s.charAt(i));
index++;
}
else if (flag == 0) {
temp.get(index).add(s.charAt(i));
index--;
}
if (index == numRows-1) flag = 0;
}
//System.out.println(temp.toString());
StringBuilder result=new StringBuilder();
for(int i=0;i<numRows;i++){
for(int j=0;j<temp.get(i).size();j++){
result.append(temp.get(i).get(j));
}
}
return result.toString();
}
}
通过查看其它人的代码发现里面直接放StringBuider就可以,于是改进了一下,并且发现我的判断写的可太复杂了,可以改变一下
class Solution {
public String convert(String s, int numRows) {
if(numRows < 2) return s;
List<List<Character>> temp = new ArrayList<>();
for(int i<