ZOJ1181 Word Amalgamation 字符串 排序查找
传送门:ZOJ1181
思路:自身排序来判断两个字符串拥有相同的字符。
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<memory.h>
#include<algorithm>
using namespace std;
string dic[110];
string sedic[110];
string x;
string six(6,'X');
bool cmp(string a,string b){
return a<b;
}
int main()
{
int num=0,i,j;
while(cin>>x)
{
if(x==six) break;
dic[++num]=x;
}
sort(dic+1,dic+num+1,cmp);
for(i=1;i<=num;i++){
sedic[i]=dic[i];
sort(sedic[i].begin(),sedic[i].end());
}
while(cin>>x)
{
if(x==six) return 0;
bool cnt=false;
sort(x.begin(),x.end());
for(i=1;i<=num;i++)
if(x==sedic[i]) {
cnt=true;
cout<<dic[i];
cout<<endl;
}
if(!cnt) cout<<"NOT A VALID WORD"<<endl;
cout<<"******"<<endl;
}
return 0;
}
It is your time to fight!