湘潭大学校赛A Love Letter

题目描述

  CodeMonkey终于下定决心用情书的方式向心爱的女神表白,当他历经几天几夜写完之后才知道女神有很多不喜欢的词,所以他不得不有把这些词删掉。例如:原文是:ILOVEYOU,女神不喜欢的词是‘LV’,‘O’那么最终情书要改成IEYU。现在已知女生不喜欢的词的集合S,CodeMonkey想知道刚写的情书会改成什么样?S={“HATE”,“SHIT”,“LV”,“O”,“FUCK”,“UGLY”,“MM”}

输入

  多样例输入,每个样例输入一行情书原文,原文只包含大写英文字母,原文长度不超过1000

输出

  对于每个样例,若是情书被删完则输出一行“LOSER”,否则输出情书的剩余内容

样例输入
ILOVEYOU
MM

样例输出
IEYU
LOSER
题意:输入一行字符串将集合里面包含的字符串删除然后得到新的字符串如果删除后没有字符则输出为LOSER,题目很简单,但是我真的不会,后面看了别人的博客得到的代码和思想,他的代码有点冗长,其实还可以修改但是为了赶时间我没有修改了
代码:
#include<string.h>
#include<stdio.h>
char a[1010];
int len;
int act(){
	int ok=0;
	for(int i=0;i<len;i++){
		if(i+4<=len){
			if(a[i]=='H'&&a[i+1]=='A'&&a[i+2]=='T'&&a[i+3]=='E'){
				for(;i<len;i++)
				a[i]=a[i+4];
				len-=4;
				ok=1;
			}
			if(a[i]=='S'&&a[i+1]=='H'&&a[i+2]=='I'&&a[i+3]=='T'){
				for(;i<len;i++)
				a[i]=a[i+4];
				len-=4;
				ok=1;
			}
			if(a[i]=='F'&&a[i+1]=='U'&&a[i+2]=='C'&&a[i+3]=='K'){
				for(;i<len;i++)
				a[i]=a[i+4];
				len-=4;
				ok=1;
			}
			if(a[i]=='U'&&a[i+1]=='G'&&a[i+2]=='L'&&a[i+3]=='Y'){
				for(;i<len;i++)
				a[i]=a[i+4];
				len-=4;
				ok=1;
			}
			
		}
		if(i+2<=len){
			for(int i=0;i<len;i++){
				if((a[i]=='L'&&a[i+1]=='V')||(a[i]=='M'&&a[i+1]=='M')){
				for(;i<len;i++)
				a[i]=a[i+2];
				len-=2;
				ok=1;	
				}
			}
		}
		if(i+1<=len){
			for(int i=0;i<len;i++){
				if(a[i]=='O'){
					for(;i<len;i++)
					a[i]=a[i+1];
					len-=1;
					ok=1;
				}
			}
		}
	}
	return ok;
}
int main(){
	while(gets(a)){
		len=strlen(a);
		while(act()&&len>0){}
		if(len==0)
		puts("LOSER");
		else{
		for(int i=0;i<len;i++)
		printf("%c",a[i]);
		printf("\n");
	}
  }
	return 0;
}

总结:做题要有信心,每天一题根本停不下来
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值