1. 题目
2. 思路
(1) 取余
(2) 双指针法
- 先将字符串整体反转,再将字符串前length-n项反转,最后将字符串后n项反转即可。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public String reverseLeftWords(String s, int n) {
char[] res = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
res[i] = s.charAt((i + n) % s.length());
}
return String.valueOf(res);
}
}
class Solution1 {
private char[] res;
public String reverseLeftWords(String s, int n) {
res = s.toCharArray();
reverse(0, s.length() - 1);
reverse(0, s.length() - 1 - n);
reverse(s.length() - n, s.length() - 1);
return String.valueOf(res);
}
private void reverse(int left, int right) {
while (left < right) {
char temp = res[left];
res[left++] = res[right];
res[right--] = temp;
}
}
}