【Leetcode】541. Reverse String II

来源:互联网 发布:空降什么意思网络 编辑:程序博客网 时间:2024/05/21 09:01

思路:

每2k个字符是一组,进行处理。

若剩下的字符小于k个,则逆序所有字符,加到结果数组result。

若剩下的字符大于等于k且小于2k个,则逆序前k个字符后加到结果数组result,再把剩余的字符加到结果数组result。

若剩下的字符大于2k个,则逆序前k个字符后加到结果数组result,再把后k个字符加到结果数组result。

public class Solution {    public String reverseStr(String s, int k) {        int len = s.length();        String result = "";        for (int i = 0; i < len; i += 2 * k) {            if (len - i < k) {                String temp = reverse(s.substring(i, len));                result += temp;            }            else if (len - i < 2 * k && len - i >= k) {                String temp =  reverse(s.substring(i, i + k));                result += temp + s.substring(i + k, len);            }            else {                String temp = reverse(s.substring(i, i + k));                result += temp + s.substring(i + k, i + 2 * k);            }        }        return result;    }    public String reverse(String s) {        String result = "";        int len = s.length();        for (int i = 0; i < len; i++)             result = s.charAt(i) + result;        return result;    }}

Runtime:30ms

1 0