您的位置:首页 > 其它

高效算法设计专项:UVa 10391

2013-04-05 22:09 477 查看
用hash表记录字符串,然后遍历所有的字符串,检验该字符串是否可以被分解成两个表中的其他的字符串即可。具体实现起来就是用stl中的set。

#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdio>
#include <set>
#include <string>
using namespace std;
int main()
{
freopen("in.txt","r",stdin);
string s;
set<string> S;
while(cin>>s) S.insert(s);
for(set<string>::iterator it=S.begin();it!=S.end();it++)
{
s=*it;
int flag=0;
for(int i=1;i<s.size()-1;i++)
if(S.count(s.substr(0,i))&&S.count(s.substr(i)))
{
flag=1;break;
}
if(flag) cout<<s<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: