第八届湘潭大学程序设计比赛A题

来源:互联网 发布:怎么开农村淘宝服务站 编辑:程序博客网 时间:2024/06/10 02:42

A Love Letter

Accepted : 33 Submit : 66Time Limit : 1000 MS Memory Limit : 65536 KB 

题目描述

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

输入

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

输出

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

样例输入

ILOVEYOUMM

样例输出

IEYULOSER
[ Submit Solution ]
#include <cstdio>#include<cmath>#include<cstring>#define MAX 1010char str[MAX];char d[][10]={"HATE","SHIT","LV","O","FUCK","UGLY","MM"};int delet(char *str1,char *str2){    int len1=strlen(str1),len2=strlen(str2);    for(int i=0;i<=len1-len2;i++)    {        int ok=1;        for(int k=0;k<len2;k++)        {            if(str1[i+k]!=str2[k])            {                ok=0;break;            }        }        if(ok)        {            char ch[MAX]="\0";int t=0;            for(int j=0;j<i;j++)                ch[t++]=str1[j];            for(int j=i+len2;j<len1;j++)                ch[t++]=str1[j];            ch[t]='\0';            strcpy(str1,ch);            return 1;        }    }    return 0;}int main(){    //freopen("input.txt","r",stdin);    while( gets(str)!=NULL)    {        int ok=1;        while(ok)        {            ok=0;            for(int i=0;i<=6;i++)            {                if(delet(str,d[i]))ok=1;            }        }      if(!strlen(str))puts("LOSER");      else puts(str);    }    return 0;}

0 0
原创粉丝点击