818786 | asia2562219 | C | Accepted | 4464 KB | 218 ms | C++ | 615 B | 2012-11-17 16:05:08 |
写个了字典树 但又发现map 这个以前没用过的 容器 很好用
map 建立 key-value 的关系表 在log[N]内查找出value
这里用单词做key,value为1
及其简洁的查找子串是否存在(就是个懒)。。。
View Code
#include<cstdio> #include<cstring> #include<string> #include<cstdlib> #include<algorithm> #include<iostream> #include<map> using namespace std; #define MAXN 1111111 string word[50111]; map<string,int> m; int main() { int tot=0,i,aa=0,j; while(cin>>word[tot++]/*,word[tot-1]!="#"*/) { m[word[tot-1]]=1; } for(i=0;i<tot;i++) for(j=1;j<word[i].length();j++) //cout<<word[i].substr(0,j)<<' '<<word[i].substr(j)<<endl; if(m[word[i].substr(0,j)]==1&&m[word[i].substr(j)]==1) { cout<<word[i]<<endl; break; } return 0; }