文章
19
粉丝
0
获赞
152
访问
6.0k
这题真尼玛恶心
刚开始没考虑到,被替换的数量可以比输入的cmd[2]多
#include<stdio.h>
int main(){
char arr[100];
while(~scanf("%s", arr)){
int n;
scanf("%d", &n);
for(int i=0; i<n; i++){
char cmd[20];
scanf("%s", cmd);
int c=cmd[0]-'0', k=cmd[1]-'0', len=cmd[2]-'0';
//printf("%d %d %d", c,k,len);
if(c==0){
char brr[100]={0};
int num=0;
for(int i=k; i<k+len; i++)
brr[num++]=arr[i];
for(int i=k; i<k+len; i++){
arr[i]=brr[--num];
}
}else{
int y=strlen(cmd)-3-len;
//printf("[%d]", y);
for(int i=strlen(arr)-1; i>=k+len; i--){
arr[i+y]=arr[i];
}
int num=3;
int x=k+strlen(cmd)-3;
for(int i=k; i<x; i++){
arr[i]=cmd[num++];
}
}
printf("%s\n", arr);
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发