网络警察 (哈希表)
题目描述
作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词。不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检查。请编写一个程序,发现这种调整过顺序的关键词。
输入格式
输入有两行,第一行是关键词列表,第二行是待检查的句子。
单词全部为小写,单词之间以一个空格分隔,每一行的单词个数不限
输出格式
输出为在该句子中所找到的经过顺序调整的关键词
按照在关键词列表中的先后顺序输出,末尾不能有空格。
输入样例
missiles guns mines
aameric ssell snug dan iimsssle ot sit neeemis
输出样例
missiles guns
分析
本题首先要把所有的单个字符串进行一个排序,方便之后比较,然后给每个排序后的字符串编号(题目要求按字典中先后顺序输出)。
比较时用一个集合set将所有出现的单词的序号加入到集合中(set会自动排序),最后输出结果。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int cnt=1;
map<int,string> mp;
map<string,int> mid;
string s;
int main()
{getline(cin,s);stringstream ssin(s);while(ssin>>s){auto t=s;sort(t.begin(),t.end()); //将单词排序并给其一个下标进行映射mp[cnt]=s;mid[t]=cnt++;}getline(cin,s);stringstream ssi(s);set<int> se; //用集合存放出现的单词下标while(ssi>>s){auto t=s;sort(t.begin(),t.end()); //将文本中的单词自身先排序,然后看在不在哈希表中if(mid[t]){se.insert(mid[t]);}}vector<string> vv;for(auto idx:se) //将集合中的单词加入到最终的容器中{vv.push_back(mp[idx]);}for(int i=0;i<vv.size()-1;i++) cout<<vv[i]<<" "; //防止末尾有空格cout<<vv[vv.size()-1];return 0;
}
网络警察 (哈希表)相关推荐
- 网络编程之 哈希表原理讲解 来自老司机的源码
鉴于博主很久没由跟新过数据结构的内容了,所以博主打算给大家讲解一下哈希表的操作 下面的内容来自于一位老司机 martin的源码,博主在这里借用一下,目的是突出哈希表的原理,明天博主就周末了,也能腾出时 ...
- 不同表结构数据迁移_数据结构:哈希 哈希函数 哈希表
写在前面 希望你们看了能够有所收获,同时觉得不错的朋友可以点赞和关注下我,以后还会有更多精选文章分享给大家!大家可以关注一下java提升专栏 java提升zhuanlan.zhihu.com 什么是 ...
- c语言哈希表电子辞典_关于redis涉及的知识点,C语言如何操作redis
redis是什么? redis是一个由 Salvatore Sanfilippo 写的 key-value 存储系 统.Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网 ...
- 内存数据库MemSQL ——基于内存,MVCC+哈希表、跳表
本周数据库业界探讨最火热的话题就是MemSQL,究竟是不是"旧瓶装新酒"引发了诸多的辩论,同时也引发了究竟是产品技术重要还是DBA重要的疑问.网络中有一些关于MemSQL的介绍,基 ...
- 纸上谈兵: 哈希表 (hash table)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! HASH 哈希表(hash table)是从一个集合A到另一个集合B的映射(map ...
- 哈希表的C实现(三)---传说中的暴雪版
关于哈希表C实现,写了两篇学习笔记,不过似乎网上流传最具传奇色彩的莫过于暴雪公司的魔兽文件打包管理器里的hashTable的实现了:在冲突方面的处理方面,采用线性探测再散列.在添加和查找过程中进行了三 ...
- 哈希表的画法_智慧树知到_机械制图A_答案新版
[单选题]The feeding of dairy cows has undergone a _______. A. revolutionary B. revolutions C. revolutio ...
- DHT(Distributed Hash Table,分布式哈希表)
DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络. DHT全称叫分布式哈希表(Distributed Hash Table),是 ...
- LeetCode 890. 查找和替换模式(哈希表)
1. 题目 你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配. 如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们 ...
最新文章
- 《强化学习周刊》第24期:CORL 2021强化学习的最新研究与应用
- Fetcher类的工作流程
- LInux 安全测试 2
- 最优化课堂笔记03:整数规划
- [集训队作业2018]小Z的礼物(min-max容斥,插头dp)
- 输出最小公倍数和最大公约数
- 前端面试面向对象_面向初级前端开发人员的面试问题
- 查看mysql运行的配置文件_MySQL 查看当前使用的配置文件my.cnf的方法
- playSwift第五章(函数和闭包)
- Eclipse导出WAR包
- python-PIL-16bit-灰度图像生成-tiff
- 主力吸筹猛攻指标源码_通达信主力吸筹提款副图指标 源码
- Linux命令之打包tar
- Python创建包,导入包(入门必读)
- 程序在单片机里是如何运行的?
- 人工智能数学基础---不定积分3:分部积分法
- 从敏思博客的倒闭事件看历史重现... 1
- 再理解:零空间、行空间、列空间、左零空间、基础解系、极大线性无关组、齐次解、非齐次解之间的关系
- Java8常用循环遍历操作方式的效率对比
- 89岁,他拿下人生第三个博士学位