A Love Letter
2014-03-17 20:40
169 查看
题目描述
CodeMonkey终于下定决心用情书的方式向心爱的女神表白,当他历经几天几夜写完之后才知道女神有很多不喜欢的词,所以他不得不有把这些词删掉。例如:原文是:ILOVEYOU,女神不喜欢的词是‘LV’,‘O’那么最终情书要改成IEYU。现在已知女生不喜欢的词的集合S,CodeMonkey想知道刚写的情书会改成什么样?S={“HATE”,“SHIT”,“LV”,“O”,“FUCK”,“UGLY”,“MM”}
输入
多样例输入,每个样例输入一行情书原文,原文只包含大写英文字母,原文长度不超过1000
输出
对于每个样例,若是情书被删完则输出一行“LOSER”,否则输出情书的剩余内容
样例输入
ILOVEYOU MM
样例输出
IEYU LOSER
题解:先把固定的删掉的单词按字母数从小到大排序。依次删除,同数字母删除直到没有删除为止。
#include <cstdio> #include <iostream> #include <cstring> using namespace std; char s[10][10][10]={{"O"},{"LV","MM"},{"HATE","SHIT","FUCK","UGLY"}}; /*char s[1]={"O"}; char s[2]={"LV","MM"}; char s[3]={"HATE","SHIT","FUCK","UGLY"};*/ char ss[1010]; int main() { while (~scanf("%s",&ss)) { int i,j; char *k; int l=strlen(ss); while (k=strstr(ss,s[0][0])) { int ll=strlen(k); for (i=1,j=0;i<ll;i++,j++) ss[l-ll+j]=k[i]; ss[l-1]='\0'; l=l-1; } int f=1; while (f) { f=0; for (i=0;i<=1;i++) while (k=strstr(ss,s[1][i])) { f=1; int j1,ll=strlen(k); for (j=2,j1=0;j<ll;j++,j1++) ss[l-ll+j1]=k[j]; ss[l-2]='\0'; l=l-2; } } f=1; while (f) { f=0; for (i=0;i<=3;i++) while (k=strstr(ss,s[2][i])) { f=1; int j1,ll=strlen(k); for (j=4,j1=0;j<ll;j++,j1++) ss[l-ll+j1]=k[j]; ss[l-4]='\0'; l=l-4; } } if (strlen(ss)==0) printf("LOSER\n"); else printf("%s\n",ss); } return 0; }
相关文章推荐
- HDU1591-Encoded Love-letter
- 一封绝妙的情书 An Ingenious Love Letter
- A Love Letter
- A Love Letter To Josephine
- 第八届湘潭大学程序设计比赛 A Love Letter
- A Love Letter
- 一封绝妙的情书 An Ingenious Love Letter
- 湘潭大学校赛A Love Letter
- B - Encoded Love-letter 字符串的处理
- WOJ1141-Encoded Love-letter
- hdu---1591Encoded Love-letter
- HDU 1591 Encoded Love-letter
- ACM--模拟--湘大OJ 1184--A Love Letter--水
- Encoded Love-letter
- 杭电1591 hdu 1591 Encoded Love-letter
- HDU 1591 Encoded Love-letter(简单字符串)
- A Love Letter For You
- [zz暂时不清出出处]I LOVE U 的真正含义
- WHATEVER LOVE MEANS—DIANA(爱就是一切——黛安娜 )
- Love is over?Over is Love?