【Leetcode】541. Reverse String II

    xiaoxiao2021-03-25  77

    思路:

    每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

    转载请注明原文地址: https://ju.6miu.com/read-33591.html

    最新回复(0)