UVA156-Ananagrams

来源:互联网 发布:excel统计分析软件 编辑:程序博客网 时间:2024/06/05 08:02

主要考查的是map的映射关系,以及出现重复时怎么做,例题给的方法是vector,不太会用。。。还是map,set混用直接水过。

#include<stdio.h>#include<map>#include<algorithm>#include<string.h>#include<set>#include<iostream>#include<string>using namespace std;map<string,string>MAP;set<string> SET;int main(){    //freopen("in.txt","r",stdin);    string a;    while(cin>>a){        string f=a;        if(a[0]=='#') break;        char b[100];        string c;        int k=0;        for(int i=0;i<a.size();i++){            if(a[i]<='Z'&&a[i]>='A') a[i]+=32;            b[k++]=a[i];        }        sort(b,b+a.size());        for(int i=0;i<a.size();i++)            c+=b[i];        if(MAP[c]=="")        MAP[c]=f;        else MAP[c]="0";    }    map<string,string>::iterator it;    for(it=MAP.begin();it!=MAP.end();it++)        {   string q=it->second;            if(q!="0")            SET.insert(q);        }    set<string>::iterator op;    for(op=SET.begin();op!=SET.end();op++)        cout<<*op<<endl;}


0 0