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;
}

原文地址:https://www.cnblogs.com/hua-dong/p/7603951.html