为了满足音乐学院的需求,他们找到了你。现在,他们给你提供了一段音符序列 𝑆(即所有乐曲的组合),还有若干个可能的音符序列 P。你的任务是找出在所有提供的音符序列中,哪些被引用的次数最多。
输入:
cdefgabccdefa
3
cdef
gabc
efab
输出:
2
cdef
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(){
int n;
string s;
cin>>s; cin>>n;
vector<string> vt;
while(n--)
{
string xd;
cin>>xd;
vt.push_back(xd);
}
map<string,int> mp;
int maxn = 0;
int len = s.size();
for(int i=0;i<vt.size();i++)
{
int t = 0;
int vi = vt[i].size();
for(int j=0;j<=len-vi;j++){
string str = s.substr(j,vi);
if(str == vt[i])
t++;
}
if(t>maxn)
maxn = t;
mp[vt[i]] = t;
}
cout<<maxn<<"\n";
for(const auto& it:mp)
{
if(it.second == maxn)
cout<<it.first<<"\n";
}
return 0;
}