541. Reverse String II

来源:互联网 发布:油罐车容积计算软件 编辑:程序博客网 时间:2024/04/30 09:13
Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.

Example:

Input: s = "abcdefg", k = 2Output: "bacdfeg"

Restrictions:
  1. The string consists of lower English letters only.
  2. Length of the given string and k will in the range [1, 10000]

Subscribe to see which companies asked this question.

public class Solution {    public String reverseStr(String s, int k) {        StringBuilder re = new StringBuilder();char[] data = new char[k];int n = 0;boolean flag = true;for (int i = 0; i < s.length(); ++i) {if (n < k) {data[n] = s.charAt(i);++n;continue;}i -= 1;if (flag) {while (--n >= 0)re.append(data[n]);n = 0;flag = false;} else {for (int j = 0; j < n; ++j)re.append(data[j]);flag = true;n = 0;}}if (flag) {while (--n >= 0)re.append(data[n]);n = 0;flag = false;} else {for (int j = 0; j < n; ++j)re.append(data[j]);flag = true;n = 0;}return re.toString();    }}


0 0
原创粉丝点击