设计分治算法,实现将数组A[n]中所有元素循环左移k个位置,要求时间复杂度为O(n),空间复杂度为O(1)。
Input
多组样例输入输出,每组样例一行
输入一个字符数组 A(只包含小写字母,长度小于10000),左移的位数 k(0≤k≤10000)
Output
左移后的字符串
Sample Input
abcdefgh 3 abcd 2
Sample Output
defghabc cdab
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int k;
while(cin>>s>>k){
int len=(int)s.size();
for(int i=k;i<len;i++){
cout<<s[i];
}
for(int i=0;i<k;i++){
cout<<s[i];
}
cout<<endl;
}
return 0;
}
非常简单,直接输出。