UVA10391
来源:互联网 发布:软件可行性分析 编辑:程序博客网 时间:2024/04/29 21:58
题意:给定单词集合S,包含若干单词,找出S中所有满足这样条件的元素p:p==str1+str2 && str1属于S && str2属于S
解法:暴力搜;或者用set的查找函数
解法:暴力搜;或者用set的查找函数
You are to find all the two-word compound words in a dictionary. A two-word compound word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.
Input
Standard input consists of a number of lowercase words, one per line, in alphabetical order. There will be no more than 120,000 words.
Output
Your output should contain all the compound words, one per line, in alphabetical order.
Sample Input
a alien born less lien never nevertheless new newborn the zebra
Sample Output
alien newborn
set的搜索:
#include<iostream>
#include<set>
using namespace std;
int main() {
set<string> s;
string tmp;
while (cin >> tmp)
s.insert(tmp);
set<string>::iterator it = s.begin();
for (it; it != s.end(); it++) {
tmp = *it;
for (int i = 1; i < tmp.length(); i++) {
if (s.find(tmp.substr(0, i)) != s.end() && s.find(tmp.substr(i, tmp.length() - i)) != s.end()) {
cout << tmp << endl;
break;
}
}
}
return 0;
}
暴力搜:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
// freopen("in.txt","r",stdin);
vector<string>vs[26];
string s;
while(getline(cin,s))
if(s.length())vs[s[0]-'a'].push_back(s);
for(int i=0; i<26; i++){
if(vs[i].size()>=2){
for(int j=1; j<vs[i].size(); j++){
bool judge = true;
for(int k=0; k<j; k++){
if(vs[i][j].find(vs[i][k])==0){
string t = vs[i][j].substr(vs[i][k].length());
if(!vs[t[0]-'a'].empty()){
for(int z=0; z<vs[t[0]-'a'].size(); z++){
if(vs[t[0]-'a'][z]==t){
if(judge)cout << vs[i][j] << endl;
judge = false;
}
}
}
}
}
}
}
}
return 0;
}
找到单词后注意标记,保证只输出1次。
- UVA10391
- UVa10391
- UVA10391
- uva10391
- UVa10391
- uva10391
- uva10391
- uva10391
- UVa10391
- UVA10391复合词
- UVa10391 复合词
- UVA10391-复合词
- uva10391 - Compound Words
- UVA10391- Compound Words
- UVa10391 - Compound Words
- UVa10391 - Compound Words
- UVa10391 string字符串处理
- UVA10391 Compound Words
- win7下vc6.0的安装
- VC6.0下的辅助工具:Visual Assist X
- java synchronized详解
- VC下自制一个MusicPlayer:调用activemovie控件
- PHP学习之—— Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程
- UVA10391
- UVA11292
- uva11729
- 每天工作4小时的程序员
- uva11130
- UVALive3708
- Windows 通信基础-2
- UVA11525
- NYOJ 16 矩形嵌套