1,题目
2,思路
- 用List集合来装字符串其中每k个为一个元素单位
- 我们根据题目意思就可以明白list中偶数位需要反转reverse,奇数保持原样
- 再全部拼接一块
- 最后return tostring
3,代码
import java.util.ArrayList;
import java.util.List;
public class Leetcode541 {
public static void main(String[] args) {
System.out.println(new Solution541().reverseStr("abcdefg", 2));//"bacdfeg"
}
}
class Solution541 {
public String reverseStr(String s, int k) {
List<StringBuffer> list = new ArrayList<>();
int i = 0;
int j = k;
for (; j < s.length(); i = j, j += k) {
list.add(new StringBuffer(s.substring(i, j)));//满足k条件的字符串
}
list.add(new StringBuffer(s.substring(i)));//截取剩余的字符串
for (i = 0; i < list.size(); i++) {
if (i % 2 == 0) list.get(i).reverse();//偶数次反转
}
StringBuffer stringBuffer = new StringBuffer();
for (StringBuffer buffer : list) {
stringBuffer.append(buffer);
}
return stringBuffer.toString();
}
}