算法1
先反转整个字符串
然后按n的位置将字符串分成两部分分别反转
本题主要是要把所有的特殊情况考虑进来
Java 代码
class Solution {
public String leftRotateString(String s,int n) {
if(s==null||s=="")
return "";
if(s.length()==n||n==0)
return s;
char[] arr = s.toCharArray();
int len = arr.length;
reserver(arr,0,len-1);
int start = 0,mid = len-1-n,end = len-1;
reserver(arr,0,mid);
reserver(arr,mid+1,end);
return new String(arr);
}
private void reserver(char[] arr, int start, int end) {
for (int i = 0; i < (end-start)/2+1; i++) {
char tmp = arr[start+i];
arr[start+i] = arr[end-i];
arr[end-i] = tmp;
}
}
}
Java String 我记得是有 substr 的啊。