思路1:
1 现将前n位反转,再将(n,len)位反转,最后再把整个字符串翻转即可
string LeftRotateString(string str, int n) {
if(n==0||str.size()==0)
return str;
int length=str.size()-1;
int begin=0;
int end=length;
//string &temp=str;
reverse(str,begin,begin+n-1);
reverse(str,begin+n,end);
reverse(str,begin,end);
return str;
}
void reverse(string &str,int begin,int end){
if(str.size()==0)
return;
while(begin<end){
char temp=str[begin];
str[begin]=str[end];
str[end]=temp;
begin++;
end--;
}
}
2 快捷简便
string LeftRotateString(string str, int n) {
if(n==0||str.size()==0)
return str;
int length=str.size();
str+=str;
return str.substr(n,length);
}