(哎!有点臃肿。。。水平不够。。。)
//:550.cpp
//#include<vector>
#include<string>
#include<iostream>
using namespace std;
class AnagramCompletion{
public:
vector<string> complete(string word1, string word2)
{
// string str1=word1;
string str2=word2;
vector<char> temp1,temp2;
for(size_t i=0;i!=word1.size();++i)
{
if(word1[i]!='.')
{
size_t j=0;
for(;j!=word2.size();++j)
if(word1[i]==word2[j]) { word2[j]='.'; break;}
if(j==word2.size()&&word1[i]!=str2[j])
temp2.push_back(word1[i]);
}
}
for(size_t i=0;i!=word2.size();++i)
{
if(word2[i]!='.') word1.push_back(word2[i]);
}
vector<string>temp;
vector<char>::iterator iter1=temp1.begin(),iter2=temp2.begin();
word2=str2;
for(size_t i=0;i!=word1.size();++i)
{
if(iter1==temp1.end())
temp1.push_back('A');
if(word1[i]=='.') { word1[i]==*iter1;++iter1; }
if(iter2==temp2.end())
temp2.push_back('A');
if(word2[i]=='.') { word2[i]==*iter2;++iter2; }
}
if(iter1!=temp1.end()||iter2!=temp2.end())
return temp;
temp.push_back(word1);
temp.push_back(word2);
return temp;
}
};
int main()
{
string word1,word2;
cout<<"请输入两个Word:";
cin>>word1>>word2;
AnagramCompletion mm;
vector<string> result=mm.complete(word1,word2);
if(result.empty()) cout<<endl<<"空"<<endl;
else cout<<result[0]<<"/t"<<result[1]<<endl;
return 0;
}
///:~