题目:https://www.luogu.org/problem/UVA156
一开始我还以为这道题有点恐怖……要用上哈希啥的……想来想去都不对劲,然后看了下题解……发现暴力sort储存就可以了……真的服了……
这道题的主要思路就是,sort后用map去判重就好了,字符串存到vector里然后sort输出,这题就这么结束了
#include<cstdio>
#include<iostream>
#include<map>
#include<cstring>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
map<string,int>ma;
string s;
int n;
vector<string>v;
void zhuan1(string s1)
{
string s2;
for(int i=0;i<s1.size();i++)
{
if(s1[i]>='A'&&s1[i]<='Z')
{
s2+=s1[i]+32;
}
else
{
s2+=s1[i];
}
}
sort(s2.begin(),s2.end());
ma[s2]++;
}
string zhuan2(string s1)
{
string s2;
for(int i=0;i<s1.size();i++)
{
if(s1[i]>='A'&&s1[i]<='Z')
{
s2+=s1[i]+32;
}
else
{
s2+=s1[i];
}
}
sort(s2.begin(),s2.end());
return s2;
}
int main()
{
while(cin>>s)
{
if(s=="#")break;
v.push_back(s);
zhuan1(s);
}
sort(v.begin(),v.end());
for(int i=0;i<v.size();i++)
{
if(ma[zhuan2(v[i])]!=1)
{
continue;
}
else
{
cout<<v[i]<<endl;
}
}
}