UVA10391-复合词
大意:按照字典序输入一个词典,输出其中所有的复合词。复合词是指可以由字典中任意两个不同的单词组合而成的词,比如new+born=newborn
如果每个词都和另外的词生成一个新词,然后查询,这种算法是O(n^2)的,因为n<120000,所以显然会超时。
如果将每个词拆分,然后和词典中的词匹配,此时复杂度是O(m*n),m是指单词的长度。显然单词长度不会很大,所以该复杂度可以接受。
std::map
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{map<string,bool>hash;string str[150000];hash.clear();string temp;string a,b;int num=0;while(cin>>str[num]){hash[str[num]]=true;num++;}for(int i=0;i<num;i++){temp=str[i];for(int j=0;j<temp.size()-1;j++){a=temp.substr(0,j+1);b=temp.substr(j+1);if(hash[a]&&hash[b]){cout<<temp<<endl;break;}}}return 0;
}
UVA10391-复合词相关推荐
- UVA10391复合词
题意: 给定一个词典,然后问里面那些是复合词,复合词就是当前这个单词正好是有两个单词拼接而成. 思路: 用map来标记是否出现过,然后先按长短排序,把每个单体拆分成任意两个可能的 ...
- UVa10391 复合词
给出一个词典,找出所有的复合词,即恰好有两个单词连接而成的单词.输入每行都是一个由小写字母组成的单词.输入已按照字典序从小到大排序,且不超过120000个单词.输出所有复合词,按照字典序从小到大排列. ...
- ACM Uva10391复合词
题意如下 输入一系列由小写字母组成的单词.输入已按照字典序排序且不超过120000个.找出所有的复合词,即恰好由两个单词连接而成的单词. 下面展示C++程序 #include<set> # ...
- 算法竞赛入门经典 第二版 习题5-5 复合词 Compound Words uva10391
题目:https://vjudge.net/problem/UVA-10391 思路:用vector存下单词,因为单词已按字典序排列于是复合词前半个单词一定在这个复合词之前,于是遍历寻找在首字母更变之 ...
- 算法竞赛入门经典(第2版)习题5-5 复合词 UVa10391
用拆分词的思路很棒 #include <iostream> #include <cstdio> #include <cstdlib> #include <st ...
- 习题5-5 复合词 UVa10391
1.题目描述:点击打开链接 2.解题思路:原来试了若干种思路,都失败了:1.枚举两个单词获得TLE(写了好几遍都是TLE==),2,从一个单词中拆分出一个已有单词查找剩余部分是否存在获得WA,最后决定 ...
- Uva10191 复合词
题目描述: 给出一个按字母序排列的单词列表,找到其中存在的复合词.复合词的定义是由单词列表中其他的两个单词拼接而成.所有单词均为小写. 思路: 如果直接两层遍历所有的单词组合,看他们加在一起是否是单词 ...
- 15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告
励志用少的代码做高效的表达 题目(提交)链接→UVA-10391 本题实质是#include<string>头文件的substr()字符串分割函数与#include<algorith ...
- mysql重叠的词_举例说明叠音词,重叠式复合词,词的重叠,三者有何不同?
叠音和重叠是重叠构词的两种方式. 叠音词是单纯词,由相同的不成语素的音节重叠而成,分为两种情况: 1.单个音节有音无义, 如:皑皑.猩猩 2.单个音节有音有义,但与重叠后构成的词的意义完全不同,也没有 ...
- 计算机英语是不是复合词,计算机英语专业词汇的构成.ppt
计算机英语专业词汇的构成 * 计算机英语专业词汇的构成 专业词汇的构成 派生词 (derivation) 复合词 (compounding) 混成词 (blending) 前缀 缩略词 (shorte ...
最新文章
- 参加Java培训需要注意哪些
- python classmethod知识_python基础知识讲解——@classmethod和@staticmethod的作用
- python3 报错 Resource temporarily unavailable
- 为什么我使用 Linux 开发
- 给XCODE加一个注释的小插件
- 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
- linux下杀死进程全权讲解
- NLP基础|中英文词向量评测理论与实践
- Array.prototype.slice.apply(arguments)和[].slice.apply(arguments)解析
- 公式字符串转换为公式或结果
- 4.数据结构 --- 串
- sudo chown r mysql_Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令
- Hyperledger fabric并发并行性
- 智课雅思词汇---十二、vent是什么意思
- undefined运算
- 扫 雷 小 游 戏
- (二)textarea中placeholder不显示
- 心随风起,葬身荒野亦无悔;志在止戈,醉卧沙场最逍遥。
- 用户同步管理及集群初始配置-集群搭建步骤7
- 流量劫持是如何产生的?