题目链接:近期AtCoder ABC B题 - Virtual Judge (vjudge.net)
题目大意:
给几个字符串,找出出现那最多的字符串
思路:
map,这里简述一下这是个什么东西:可以用映射的概念理解它,一般map的定义格式是这样:map <类型1,类型2> mp;类型1就相当于类型2的下标一样的存在,在这道题中通过mp[类型1]的形式找到类型2的数量然后输出类型1
代码:
#include<stdio.h>
#include<iostream>//这一行必须加上,你可以不加,会报错
#include<algorithm>
#include<map>//map头文件,也要有下面一行的一串
using namespace std;//别问为什么,就像algorithm一样都需要加这一行
int main()
{
int n;cin>>n;
string s;
map<string,int>mp;//因为需要用输入的字符串为下标比较对应的字符串个数
string name="";
mp[name]=0;// 以上两行就是一个计数功能
for(int i=0;i<n;i++)
{
cin>>s;
mp[s]++;//将输入进去的字符串进行计数
if(mp[s]>mp[name])
{
name=s;
}
}
cout<<name;
return 0;
}
总结:
还是要多学点儿,不然看什么题都不顺眼啊