给定一个字符串长度为 nn 的字符串 s1 (10<n<100) , 求出将字符串循环向左移动 k 位的字符串 s2 (1<k<n) , 例如:字符串 abcdefghijk , 循环向左移动 3 位就变成 defghijkabc
输入描述
输入仅两行,第一行为左移的位数 k , 第二行为字符串 s1 .
输出描述
输出仅一行,为将字符串 s1 左移 k 位得到的字符串 s2 .
样例输入
3
abcdefghijk
样例输出
defghijkabc
#include<iostream>
using namespace std;
#include <string.h>
void reverse(char *a,int start, int end)
{
int i ,j,temp;
for(i = start,j = end; i < j; i++,j--)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
void turnleft(char *a,int i,int n)
{
int left = i % n;
if(left == 0)
return ;
reverse(a,0,left-1);
reverse(a,left,n-1);
reverse(a,0,n-1);
return ;
}
int main()
{
char a[1024];
int i;
while(cin>>i)
while(cin>>a){
int n = strlen(a);
turnleft(a,i,n);
cout<<a<<endl;}
}