STL--映射:map

map的介绍

       map就是从键到值的映射。因为重载了[]运算符,map像是数组的“高级版”。例如可以用mapmonth_name来表示“月份名字到月份编号”的映射,然后用month_name["July"]=7这样的方式来赋值。支持insert,find,count,remove等操作。

map的应用

题目

       输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有小写字母的前面)。

样例输入
ladder came tape soon leader acme RIDE lone Dreis peatScAlE orb eye Rides dealer NotE derail LaCeS drIednoel dire Disk mace Rob dries

样例输出
Disk
NotE
derail
drIed
eye
ladder
soon

代码

#include
#include
#include
#include
#include
#include
using namespace std;
mapcnt;
vectorwords;
string repr(const string &s){//将s标准化 
	string ans=s;
	for(int i=0;i>s){
		if(s[0]=='#'){
			break;
		}
		words.push_back(s);
		string r=repr(s);
		if(!cnt.count(r)){
			cnt[r]=0;
		}
		cnt[r]++;
	}
	vectorans;
	for(int i=0;i

你可能感兴趣的:(算法竞赛学习,c++,算法)