当前位置: 首页 > news >正文

蓝桥杯 16. 密文搜索

密文搜索

原题目链接

题目描述

福尔摩斯从 X 星收到一份资料,全部是小写字母组成。

他的助手提供了另一份资料:许多长度为 8 的密码列表。

福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。

请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。


输入描述

  • 第一行:一个字符串 s,全部由小写字母组成,长度小于 1024×1024。
  • 第二行:一个整数 n,表示以下有 n 行密码,1 ≤ n ≤ 1000
  • 接下来 n 行,每行是一个字符串,均由小写字母组成,长度都为 8。

输出描述

输出一个整数,表示每行密码的所有排列在 s 中匹配次数的总和。


输入输出样例

输入

aaaabbbbaabbcccc
2
aaaabbbb
abcabccc

输出

4

c++代码

#include<bits/stdc++.h>using namespace std;int main() {string str, s;cin >> str;int n, cont = 0;cin >> n;vector<string> mid;while(n--) {cin >> s;sort(s.begin(), s.end());mid.push_back(s);}for (int i = 0; i < str.size() - 7; i++) {s = str.substr(i, 8);sort(s.begin(), s.end());for (string k : mid) {if (k == s) cont++;}}cout << cont;return 0;
}//by wqs

题目解析

在字符串 s 中,用滑动窗口,每次取连续8个字符,判断是否能通过乱序排列组成密码,匹配就计数。

相关文章:

  • C# 利用log4net 工作台打印和保存到文件
  • Redis使用总结
  • 从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——概率与统计基础 | 数字特征
  • MIT6.S081 - Lab10 mmap(文件内存映射)
  • 学习笔记—双指针算法—移动零
  • (done) 吴恩达版提示词工程 8. 聊天机器人 (聊天格式设计,上下文内容,点餐机器人)
  • Spark-Streaming2
  • 【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
  • Git常用命令简明教程
  • Git 撤回合并提交
  • 在web应用后端接入内容审核——以腾讯云音频审核为例(Go语言示例)
  • Spark Mllib 机器学习
  • 将你的本地项目发布到 GitHub (新手指南)
  • Unreal Engine 实现软件测试方案的仿真体验
  • 【大模型】图像生成 - Stable Diffusion 深度解析:原理、应用与实战指南
  • R语言操作n
  • 数据集下载(AER 和causaldata R包)
  • Stable Diffusion 技术全景解析与行业竞争力分析
  • DAY8-GDB调试及打桩
  • 相机DreamCamera2录像模式适配尺寸
  • 发挥全国劳模示范引领作用,加速汽车产业电智化转型
  • 发布亮眼一季度报后,东阿阿胶股价跌停:现金流隐忧引发争议
  • 在循环往复的拍摄中,重新发现世界
  • 日韩 “打头阵”与美国贸易谈判,汽车、半导体产业忧虑重重
  • 党旗下的青春|83岁仍在“下生活”,他说生活是创作的源泉
  • 六朝文物草连空——丹阳句容南朝石刻考察纪