UVA_10391: Compound Words

来源:互联网 发布:淘宝哪家店是阿迪正品 编辑:程序博客网 时间:2024/06/04 19:07

分析:读取所有字符串到字符数组中并存在map中建立映射,之后进入主循环,遍历每个字符串,按长度截取成两个字符串,分别在map中查找,如果找到了说明可以拆,进行下一个,不能继续找。


#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <map>using namespace std;char words[120010][30];map<string,int> wmap;int main(){int n=0;while(~scanf("%s",words[n])){wmap[words[n]]=1;n++;}for(int i=0; i<n; i++){int len = strlen(words[i]);for(int j=0; j<len; j++){char t1[30] = {0};char t2[30] = {0};strncpy(t1,words[i],j);strncpy(t2,words[i]+j,len-j);if(wmap[t1] && wmap[t2]){printf("%s\n",words[i]);break;}}}    return 0;}


0 0
原创粉丝点击