P8630 [蓝桥杯 2015 国 B] 密文搜索
qwerty12346 · · 题解
题目传送门
题意
就是求从第一份资料中搜索可能隐藏密码的位置。并要输出所有排列在
思路
因为密码是打乱的,所以要先对这个字符串排序。然后将排列后出现的号码依次相加,最后再在字符串中取连续
代码
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;//map容器统计出现的号码
string s,x;
int n,ret;
int main(){
cin>>s>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
sort(x.begin(),x.end());//对字符串x排序
mp[x]++;
}
for(int i=0;i<s.size()-7;i++)
{
x=s.substr(i,8);
sort(x.begin(),x.end());
ret+=mp[x];
}
cout<<ret;
return 0;
}