关注
在做题的始终是在想将所有的输出结果保存了然后最后一次性输出,结果始终输出不了。现在就直接将输出改为cout输出了。现在虽然本地可以AC了,但是就想问问大佬们,我对多case的处理是否正确。 #include<iostream>
#include<string>
#include<vector>
using namespace std;
bool isMatch(const string &dict, const string &example);
vector<int> getNext(const string &needle, int m, vector<int> next);
int main()
{
while (cin) //此处是否正确?
{
int N;
cin >> N;
vector<string> dict(N, "");
for (int i = 0;i<N;i++)
{
cin >> dict[i];
}
int M;
cin >> M;
vector<string> example(M, "");
for (int i = 0;i<M;i++)
{
cin >> example[i];
}
for (int i = 0;i<M;i++)
{
int count = 0;
for (int j = 0;j<N;j++)
{
if (isMatch(dict[j], example[i]))
{
count++;
}
}
cout << count << endl; //输出
}
}
return 0;
}
//KMP匹配算法
bool isMatch(const string &dict, const string &example)
{
int n = dict.size(), i = 0;
int m = example.size(), j = 0;
if (m>n) return false;
if (n == 0 || m == 0) return true;
vector<int> next(m);
next = getNext(example, m, next);
while (j<m&&i<n)
{
if ((0>j) || dict[i] == example[j])
{
i++;
j++;
}
else
{
j = next[j];
}
}
return j == m ? true : false;
}
vector<int> getNext(const string &needle, int m, vector<int> next)
{
int t = -1;
next[0] = -1;
int j = 0;
while (j<m - 1)
{
if (0>t || needle[j] == needle[t])
{
j++;
t++;
next[j] = (needle[j] != needle[t] ? t : next[t]);
}
else
t = next[t];
}
return next;
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
02-06 11:31
黑龙江工程学院 行政专员/助理 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 2027届暑期实习大科普,为什么从来没人给你讲过这些事情?5493
- 2... 28届混子终于写好简历了,求大佬锐评5030
- 3... 面试官视角聊聊:如何在AI浪潮中找到好工作?3870
- 4... 美团测开->腾讯后端,感谢那个不愿放弃的自我1537
- 5... 老板原话:AI要完全取代程序员了1207
- 6... 26春招1182
- 7... 急哭了!985科班本三段大厂实习被阿里一脚踹飞!简历都没收!1027
- 8... 三七互娱 游戏开发-C++ 一面951
- 9... 找前端实习岗位,最近面了三四场860
- 10... 27届是建议考研还是就业?803
正在热议
更多
# 开工第一帖 #
85629次浏览 1407人参与
# 我的求职精神状态 #
435299次浏览 3099人参与
# 应届生,你找到工作了吗 #
113581次浏览 693人参与
# 牛友的志愿填报指南 #
52123次浏览 308人参与
# 业务面应该做哪些准备 #
97407次浏览 1081人参与
# 工作丧失热情的瞬间 #
363535次浏览 2552人参与
# 工作两年想退休了 #
252431次浏览 2034人参与
# 听劝,这个简历怎么改 #
385790次浏览 1840人参与
# 实习最晚的一次下班是几点 #
26915次浏览 134人参与
# 如果不工作真的会快乐吗 #
190588次浏览 1328人参与
# 一人一道大厂面试题 #
118148次浏览 1268人参与
# xx岗简历求拷打 #
29518次浏览 245人参与
# 打工人的精神状态 #
138217次浏览 1509人参与
# 实习的你做了哪些离谱的工作 #
31508次浏览 234人参与
# 我和xx公司的爱恨情仇 #
54244次浏览 332人参与
# 你找工作的时候用AI吗? #
180185次浏览 925人参与
# 找工作有哪些冷知识 #
228898次浏览 2721人参与
# 今年形式下双非本找得到工作吗 #
289747次浏览 1654人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
24296次浏览 281人参与
# 掌握什么AI技能,会为你的求职大大加分 #
18574次浏览 652人参与


格力公司福利 425人发布