Ananagrams (多种stl)

Posted fy1999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ananagrams (多种stl)相关的知识,希望对你有一定的参考价值。

题意  给你一篇文章  以"#"号结束   按字典序求输出这篇文章中真正只出现过一次的单词   就是不能通过字母重新排列得到文章中另一个单词的单词

把每个单词的字母全部化为小写  再把这个单词中的字母按字典序排列  得到一个字符串  用map记下出现次数就行   只出现过一次的就是要输出的

 

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <map>
#include <string>
#include <set>
#include <sstream>
#include <vector>


using namespace std;

string s,t;
set<string>st;
vector<string>ans;
map<string,string>ss;
map<string,int>cnt;

int main()
{
    while(cin>>s&&s!="#")
    {
        t=s;
        ans.push_back(s);
        for(int i=0;i<t.length();++i)
        {
            t[i]=tolower(t[i]);

        }
        sort(t.begin(),t.end());
            ss[s]=t;
            ++cnt[t];

    }
    sort(ans.begin(),ans.end());
    for(vector<string>::iterator it=ans.begin();it!=ans.end();++it)
    {
        if(cnt[ss[*it]]==1) cout<<*it<<endl;
    }
    return 0;
}

 

以上是关于Ananagrams (多种stl)的主要内容,如果未能解决你的问题,请参考以下文章

STL语法——映射:map 反片语(Ananagrams,UVa 156)

UVa156 Ananagrams (STL)

uva 156 - Ananagrams (反片语)

UVA 156 Ananagrams

反片语 (Ananagrams,UVa 156)

UVa-156 Ananagrams(map映射)