T1185:单词排序

随声附和 提交于 2020-01-27 00:03:32

T1185:单词排序

http://ybt.ssoier.cn:8088/problem_show.php?pid=1185
题目地址。

思路

这道题分为两个部分:1.排序 2。去重(简单版见Noip 明明的随机数
两道题的区别是:本题为字符串排序。
去重算法:map
简介:一种c++STL模板,可以进行两种不同类型的转换:
例如本题,要用bool标记string类型,写法如下:
map <string,bool> m;
用法:m[“a”]=1 或者 m[a]=0;(第一个为字符串,第二个为变量)
模板:map<类型1,类型2> 变量名; 变量名[类型1]=类型2;
而字符串排序为sort(变量+1,变量+1+n);【规则一样,变量名后不必加[ ]】
详见:[对string类型sort]
(https://blog.csdn.net/qq_38946354/article/details/84948414)
算了代码不贴了吧
代码如下


```cpp
#include<bits/stdc++.h>
using namespace std;
map <string,bool> m;
string s,ans[101];
int i;
int main()
{
	std::cin.tie(0);//优化
	std::cout.tie(0);
	i=0;
	while(cin>>s)//输入后要用ctrl+z【废话】
	{
		if(m[s]==0) //去重
		{
			m[s]=1;
			i++;
			ans[i]=s;
		}
	}
	sort(ans+1,ans+1+i);//字符串与数组的无区别排序
	for(int j=1;j<=i;j++)
	{
		cout<<ans[j]<<endl;//注意!第一个要用while,因为去掉个数不定(再来一个循环 【划掉】)
	}
 	return 0;
}

有意见或建议,欢迎提出!~~~


该划掉呢还是划掉呢?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!