文章

19

粉丝

0

获赞

152

访问

6.0k

头像
查找 - 北邮 C语言题解:
P1387 北京邮电大学
发布于2026年3月14日 17:55
阅读数 327

这题真尼玛恶心

刚开始没考虑到,被替换的数量可以比输入的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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发