代码:
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int main()
{
map<string,int> m; //标记字符串是否出现过
vector<string> v; //存输入的字符串
string s;
while(cin>>s)
{
m[s]=1; //标记字符串出现过
v.push_back(s);
}
for(int i=0;i<v.size();i++)
{
int j=0; //从头开始,把字符串不断分割成两部分
while(j++<v[i].size()-1)
{
string ss=v[i];
if(m[ss.substr(0,j)] && m[ss.substr(j,v[i].size()-j)]) //前后部分都存在 即为复合词
{
cout<<v[i]<<endl;
break;
}
}
}
return 0;
}