本文主要是介绍MC0237 小狗巴克,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
小狗巴克是一只聪明的小狗,它喜欢与主人一起玩各种游戏。最近,巴克的主人小码哥发明了一个新游戏。
在这个游戏中,小码哥会给出一个字符串A,然后巴克需要找出一个特定的字符串B是否在A中。
然而,这个游戏对小狗来说有点难,因为字符串A中的字母都是大写的,但它们被其他字符“!”分隔。例如,一个A可能是 “C!A!T!S!A!R!E!A!W!E!S!O!M!E!”,而要查找的字符串B可能是 “AWESOME”,若字符串B AWESOME 在A中存在,则输出 True,反之则输出False。
你需要编写一个程序,来帮助巴克解决这个有趣的巴克与单词游戏。
输入:
C!A!T!S!A!R!E!A!W!E!S!O!M!E!
AWESOME
输出:
True
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;int BF(string s,string t)
{int i=0,j=0;while(i<s.size() && j<t.size()){if(s[i] == t[j]){i++,j++;} else {i = i-j+1;j = 0;}}return (j>=t.size())? (i-t.size()):-1;
}int main()
{string s,tmp,t;getline(cin,s);for(int i=0;i<s.size();i++){if(s[i] == '!') continue; //去除!号tmp.push_back(s[i]);}getline(cin,t);int cnt = BF(tmp,t);if(cnt == -1)cout<<"False"<<endl;elsecout<<"True"<<endl;return 0;
}
这篇关于MC0237 小狗巴克的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!