Ananagrams UVA

来源:互联网 发布:聊天气泡软件 编辑:程序博客网 时间:2024/05/06 00:05

https://vjudge.net/problem/UVA-156

#include<stdio.h>#include<stdlib.h>#include<string.h>#include <iostream>#include <map>#include <algorithm>using namespace std;map<string ,int > d;map<string ,string > p;string a[5555],b[5555];void run(string &a){    int x=strlen(&a[0]);    for(int j=0;a[j];j++)        a[j]=tolower(a[j]);    sort(a.begin(),a.end());}int main(){    int i=0;    while(cin>>a[i]&&a[i]!="#")    {        string c=a[i];        run(a[i]);        p[a[i]]=c;//记录原串        d[a[i]]++;        i++;    }    int j=0;    for(int i=0;a[i][0];i++)    {        //cout<<a[i]<< ' '<<d[a[i]]<<endl;        if(d[a[i]]==1) b[j++]=p[a[i]];    }    sort(b,b+j);    for(int i=0;i<j;i++)cout<<b[i]<<endl;}
#include<stdio.h>#include<stdlib.h>#include<string.h>#include <iostream>#include <map>#include <algorithm>#include <vector>using namespace std;map<string,int > cnt;vector <string> words;string repr(const string &s){    string ans=s;    for(int i=0;i<ans.length();i++)    {        ans[i] = tolower(ans[i]);    }    sort(ans.begin(),ans.end());}int main(){    int n=0;    string s;    while(cin>>s&&s!="#")    {        words.push_back(s);        string r=repr(s);        if(!cnt.count(r)) cnt[r]=0;        cnt[r]++;    }    vector<string > ans;    for(int i=0;i<words.size();i++)    {        if(cnt[repr(words[i])]==1) ans.push_back(words[i]);    }    sort(ans.begin(),ans.end());    for(int i=0;i<ans.size();i++)        cout<<ans[i]<<endl;}
0 0
原创粉丝点击