P8630 [蓝桥杯 2015 国 B] 密文搜索
网站:https://www.luogu.com.cn/problem/P8630
代码如下:
主要是用了map的思想
#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<string>
#include<string.h>
#include<iomanip>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
map<string, int>mp;//注意map的用法
int main()
{
string s;
int n;
string each;
cin >> s;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> each;
sort(each.begin(), each.end());//因为输入的一串可以覆盖很多串,所以直接用最小的表示一类,注意sort的用法,不返回值
mp[each]++;//注意:同一个可能以不同形式存在,所以采用++
}
int ans = 0;
for (int i = 0; i < s.length() - 7; i++)
{
each = s.substr(i,8);//从头开始分割子串
sort(each.begin(), each.end());//找最小的作为代表
if (mp[each] >= 1)ans+= mp[each];//有几个密码对应到本子的,+=,其实不用判断mp[each]也可以,因为没有就是0,不会报错
}
cout << ans;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~