中级光能
科丁乐2019市赛模拟赛的题
3、文字游戏
(word.cpp)
【问题描述】
"消消乐"的游戏很多同学都玩过,编程大神小科突发奇想设计了一个文字游戏,游戏是这样的:
刚开始随机给出一个长度不超过 10000 字符串 S,然后再随机给出一个长度不超过 50 的字符串 T,首
先从左到右找到第一个出现的字符串 T,然后把这个字符串删掉,接下来在删除后的字符串中再继续
找最左边的字符串 T 并删除掉,如此循环下去直到字符串 S 中没有字符串 T 时游戏结束,输出最终的
剩下的字符串 S。
请你根据小科的设计来完成这个游戏吧。
【输入格式】
输入文件名为 word.in
输入文件共包含两行:
第一行,一个字符串 S,字符串的长度不超过 10000 且只包含小写字母
第二行,一个字符串 T,字符串的长度不超过 50 且只包含小写字母
【输出格式】
输出文件名为 word.out
输出文件只包含一行:一个字符串,表示最终剩下的字符串 S
【输入输出样例 1】
word.in
word.out
sohappyhahappysohap
hap
sopyyso
【输入输出样例 1 说明】
游戏开始时给出的字符串 S 是 sohappyhahappysohap,字符串 T 是 hap
第一次在字符串“sohappyhahappysohap”中从左到右找到“hap”并进行删除,删除后的字符串
是“sopyhahappysohap” 第二次在字符串“sopyhahappysohap”从左到右找到“hap”并进行删除,删除后的字符串是
“sopyhapysohap” 第三次在字符串“sopyhapysohap”从左到右找到“hap”并进行删除,删除后的字符串是
“sopyysohap” 第四次在字符串“sopyysohap”从左到右找到“hap”并进行删除,删除后的字符串是“sopyyso”
此时字符串 S 为“sopyyso”,不包含字符串 T“hap”,游戏结束,输出最终的字符串 S
string s,t;
int main(){
//freopen("mine.in","r",stdin);
//freopen("mine.out","w",stdout);
cin>>s>>t;
int p;
while(s.find(t)!=string::npos){
p=s.find(t);
s.erase(p,t.size());
}
cout<<s;
//fclose(stdin);
//fclose(stdout);
return 0;
}