分析:以第n个为间隔,左边翻转一次,右边翻转一次,整个字符串再翻转一次。
代码:
class Solution {
public:
void reverse(string &s,int start,int end){
int i=start;
int j=end;
char temp;
while(i<j){
temp=s[i];
s[i]=s[j];
s[j]=temp;
i++;
j--;
}
}
string LeftRotateString(string str, int n) {
int len=str.size();
if(len==0||n==0) return str;
string &temp=str;
reverse(temp,0,n-1);
reverse(temp,n,len-1);
reverse(temp,0,len-1);
return temp;
}
};
当然可以用python很简单的实现,不过这么回答的话就没什么意思了。
# -*- coding:utf-8 -*-
class Solution:
def LeftRotateString(self, s, n):
# write code here
return s[n:]+s[:n]