censor

censor

题目描述

农民约翰已经为他的奶牛订好了Good Hooves keeping 杂志,使他们有足够的材料看。不幸的是,最新的一期载有关于如何煮完美的牛排的文章,而FJ 不想他的奶牛看到这篇相当不雅的文章(显然,这本杂志是需要更好的编辑监督的)。
FJ 从该杂志采取了所有文字,创建了长度小于等于10^6 的字符串s。从此,他想删除一个子串T来审查不当内容。要做到这一点,农民约翰找到S 中出现的T 并将其删除。然后,他再次重复这个过程,删除出现的T,一直持续到没有出现T 的S。注意,删除一次后可能会创建一个新的T出现,这个T是以前不存在的。
请输出审查完毕后,FJ 所确定 的S的最终内容。

输入

第一行将包含S
第二行包含T,T 的长度最多是S 的长度,S 和T 的所有字符均为小写字母(范围a..z)

输出

全部删除完成后的S。保证使得S 在删除过程中不会成为空。

样例输入

whatthemomooofun
moo

样例输出

whatthefun

这是一道字符串的基础题,没有什么好讲的!

code:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
string s,t;
int ls,lt,i,pd;
int main()
{
	freopen("censor.in","r",stdin);
	freopen("censor.out","w",stdout);
	cin>>s;
	cin>>t;
	ls=s.size();
	lt=t.size();
 	while(i<=ls-1)
 	{
 		if(s[i]==t[lt-1]&&i>=lt-1)
 		{	
 			pd=i-lt+1;
 			for(int j=0;j<=lt-1;j++)
 			 	if(t[j]==s[pd]) pd++;
 			  	else
				{
					pd=-1;
					break;
				}
 			if(pd!=-1)
			{
			 	s.erase(i-lt+1,lt);
				i-=lt;
			}  
		}
		i++;	
	}
	cout<<s<<endl;
	return 0;
}

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值