题解 洛谷P1808 【单词分类】

此题STL

S T L万岁!

此题可以用map,不过看到有人已经写过了,只好改用set,不过map我也会说。

一、set

set,即集合,特点是自动去重。所以,在这道题中,也挺好用的。不会用的请去这里学。 这样一来,就不用我特别详细的说了吧。

#include<bits/stdc++.h>
using namespace std;
set<string>s;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        string t;
        cin>>t;
        int len=t.size();
        int i,j;
        for(i=0;i<len-1;i++)
        {
            int k=i;
            for(j=i+1;j<len;j++)
            {
                if(t[k]>t[j])
                {
                    k=j;
                }
            }
            if(i!=k)
            {
                swap(t[i],t[k]);
            }
        }
        s.insert(t);
    }
    cout<<s.size()<<endl;
    return 0;
}
View Code

二.map

map是一种大号数组,而且下标不仅仅必须是整型。不会用的请去这里学。至于代码的实现,很多人都写过了,我就不放了。

posted @ 2020-08-08 15:25  Bushuai_Tang  阅读(132)  评论(0编辑  收藏  举报