复合词 (Compund Word,UVa 10391)

Posted secoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复合词 (Compund Word,UVa 10391)相关的知识,希望对你有一定的参考价值。

题目描述:

技术分享图片

 

题目思路:

用map保存所有单词赋键值1,拆分单词,用map检查是否都为1,即为复合词

 1 #include <iostream>
 2 #include <string>
 3 #include <map>
 4 using namespace std;
 5 map<string,int> dict ;
 6 string str[120005] ;
 7 int main(int argc, char *argv[])
 8 {
 9     int count = 0;
10     while(cin >> str[count]){
11         dict[str[count]] = 1;
12         count ++ ;
13     }
14     for(int i = 0;i < count ;i++){
15         for(int j = 0;j < str[i].length() ;j++){
16             string word1,word2 ;
17             word1 = str[i].substr(0,j) ;
18             word2 = str[i].substr(j) ;
19             if(dict[word1] && dict[word2]) {
20                 cout << str[i] << 
;
21                 break;
22             }
23         }
24     }
25     return 0;
26 }

 

 

以上是关于复合词 (Compund Word,UVa 10391)的主要内容,如果未能解决你的问题,请参考以下文章

uva10391(复合词)

UVA103 dp基础题,DAG模型

记忆化搜索 UVA 103

uva103 - Stacking Boxes(DAG)

UVa 103 Stacking Boxes --- DAG上的动态规划

uva-103-dp----has error