顺利的1a,可以去吃饭~\(≧▽≦)/~啦啦啦
/*
zoj_1181 字符串处理
简单题
题意:输出重新组合给出的字母可以的得到的单词。
方法:给每个单词一个序列号喽。序列号的形式是26位的字符串。第i位代表i+'a'出现的次数。
匹配序列号即可。
*/
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
string word[110];
string s[110];
void inint( int maxi )
{
int i,j;
for( i=0;i<maxi;i++ )
{
s[i]="";
for( j=0;j<26;j++ )
s[i]+='0';
}
}
string change( string t )
{
int i,j;
string tt="";
for( j=0;j<26;j++ )
tt+='0';
for( i=0;i<t.size();i++ )
{
tt[ t[i]-'a' ]++;
}
return tt;
}
int main()
{
string t;
int i,j,maxi;
bool nothing;
i=0;
while( cin>>t && t!="XXXXXX" )
{
word[i++]=t;
}
maxi=i;
inint( maxi );
sort( word,word+maxi );
for( i=0;i<maxi;i++ )
{
for( j=0;j<word[i].size();j++ )
{
s[i][ word[i][j]-'a' ]++;
}
}
while( cin>>t && t!="XXXXXX" )
{
t=change( t );
nothing=true;
for( i=0;i<maxi;i++ )
{
if( t==s[i] )
{
cout<<word[i]<<endl;
nothing=false;
}
}
if( nothing ) cout<<"NOT A VALID WORD\n";
cout<<"******\n";
}
return 0;
}