1. The title site
https://leetcode.com/problems/reverse-string-ii/
2. Title Description
3. subject to the effect
Given a string, and the string of interval k, k represents the number of inverted once every k, k elements and then re-reversal interval k elements.
4. Problem-solving ideas
Just follow the interval to reverse it. Then the interval k elements is not reversed by letting i * k complete each increment of 2.
5. AC Code
class Solution {
public String reverseStr(String s, int k) {
int length = s.length();
char[] arr = s.toCharArray();
for(int i = 0; i < length; i += 2*k) { // 主要是这个地方
reverse(arr, i, k);
}
return String.valueOf(arr);
}
private void reverse(char[] s, int start, int k) {
int index = start + k - 1;
if(index > s.length - 1) index = s.length - 1;
while(start < index) {
char temp = s[start];
s[start] = s[index];
s[index] = temp;
start ++; index --;
}
}
}
6. similar questions
. [1] 344 Reverse String title site: https://leetcode.com/problems/reverse-string/
[2] 541. Reverse String II site topic: https://leetcode.com/problems/reverse-string-ii /
[3] 557. Reverse Words in a String III site topic: https://leetcode.com/problems/reverse-words-in-a-string-iii/