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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!