我第一遍提交的时候还考虑是否会出现大小写不同的同类树。
我想着先全部转换为小写,然后把首字母大写还原。
但是题目测试点显然没有这些东西,而且我似乎还写错了一些内容,导致只能过第一个测试点。后来我想到这个题目集主要是熟悉算法,很多题目都是直接的模板题,所以把想太多的内容删掉了,代码也就通过了。
#include<cctype>
#include<cstdio>
#include<map>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
string str,tmp;
map<string,int> mp;
mp.clear();
cin>>n;
getchar();
for(int i=0;i<n;i++){
getline(cin, str);
//transform(str.begin(),str.end(),str.begin(),::tolower);
mp[str]++;
}
map<string,int>::iterator it;
for(it=mp.begin();it!=mp.end();it++){
tmp=it->first;
printf("%s ",tmp.c_str());
int num=it->second;
printf("%.4f%%\n",num*1.0/n*100);
}
return 0;
}