左旋转字符串,根据题意可以利用StringBuffer来解决。
但是既然提起旋转,就可以先旋转[0,n-1]的字符串,再旋转[n,str.length-1]的字符串,再把整个字符串旋转,就是所求。
public class Solution {
public String LeftRotateString(String str,int n) {
if(n <= 0 || str.length() < n ||str == null || str.length() == 0)
return str;
char[] ch = str.toCharArray();
reverseString(ch,0,n-1);
reverseString(ch,n,str.length() - 1);
reverseString(ch,0,str.length() - 1);
return new String(ch);
}
public void reverseString(char[] ch, int start, int end){
while(start < end){
char temp = ch[start];
ch[start] = ch[end];
ch[end] = temp;
start++;
end--;
}
}
}