题目链接: Hat’s Words
题意: 要求找到字典中两个单词组合起来的单词, 且输出要求按照原来字典的顺序
思路: map 的使用
#
string s1(s[i],0,j); //从0开始的将s[i]的j个字符附给s1
CODE:
#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<stack>
#include<set>
#include<queue>
#include<map>
#include<vector>
using namespace std;
string s[50005];
int main()
{
//freopen("in.in","r",stdin);
map<string,int> ma;
int n=0;
while(cin>>s[n])
{
ma[s[n++]]=1;
}
for(int i=0;i<n;i++)
{
for(int j=1;j<s[i].size()-1;j++)
{
string s1(s[i],0,j); //从0开始的将s[i]的j个字符附给s1
string s2(s[i],j,s[i].size()-j);
if(ma[s1]==1 && ma[s2]==1)
{
cout<<s[i]<<endl;
break;
}
}
}
return 0;
}