前言:
这篇文章还是是为了帮助一些
像我这样的菜鸟
找到简单的题解
问题描述:
李老师拿到了一份名单,上面有 n 个学生姓名,为这个月图书馆的借书记录。
由于有一些同学在一个月内多次借书还书,所以他的姓名会出现多次(即名单中可能存在相同的名字)。
现在,李老师想知道名单中的实际学生人数(相同名字只算 1 个),请你编程实现这一任务。
输入格式
第一行:n (1≤n≤1000)。
接下来 n 行:每行一个学生姓名 namei(均为小写字母,长度不超过 30)。
输出格式
输出若干行:
-
第一行:一个整数,为名单上的学生人数。
-
接下来的若干行,每行一个名字,为按字典序从大到小排序后的学生姓名。
样例输入
5
zhangsan
lisi
zhangsan
lisi
wangwu
样例输出
3
zhangsan
wangwu
lisi
问题解析:
这道题存在的目的就是为了练习SET
非常的简单
完整代码:
#include<bits/stdc++.h>
using namespace std;
set<string,greater<string> > s;//这是为了倒叙,方便输出
int n;
string z;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>z;
s.insert(z);//读入
}
cout<<s.size()<<endl;
for(auto it:s)//老师刚教的好方法
{
cout<<it<<endl;//非常的好用
}
return 0;
}