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();}
}