MC0237 小狗巴克

2023-12-13 19:58:38

小狗巴克是一只聪明的小狗,它喜欢与主人一起玩各种游戏。最近,巴克的主人小码哥发明了一个新游戏。

在这个游戏中,小码哥会给出一个字符串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;
	else
		cout<<"True"<<endl;

	return 0;
}

文章来源:https://blog.csdn.net/weixin_47830774/article/details/134980012
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。