- 题目
- 题解(24)
- 讨论(19)
- 排行
简单 通过率:41.36% 时间限制:1秒 空间限制:256M

校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
描述
小红每天都要背单词,然后她会把每天记住了多少单词记录下来,并在小红书上打卡。
当小红背单词时,如果她已经记住了ii个单词,且背了一个没有记住的新单词i+1i+1次,则她就会记住这个新的单词。
例如,当她按顺序背["you","thank","thank"]时,她第一次背单词"you"时她就能记住"you"。而由于她已经记住了一个单词,所以需要背两次"thank"才能记住"thank"。
现在你知道了小红背单词的顺序,请你求出小红今天记住了多少个单词。
输入描述:
第一行一个整数n(1≤n≤10000)n(1≤n≤10000)。
接下来nn行,每行一个字符串,保证每个字符串长度不超过 10。
输出描述:
输出一个整数,表示她记住了多少个单词。
示例1
输入:
5
you
thank
queue
queue
thank
复制输出:
2
复制说明:
小红先记住了单词"you",又因为背了两次"queue",于是记住了单词"queue"。由于已经记住了两个单词,所以背两次"thank"还不能让小红记住。
cpp
#include <iostream>
#include<map>
using namespace std;
int main() {
int n;cin>>n;
int max=0;
map<string,int>mp;
map<string,int>remeber;
for(int i=0;i<n;++i){
string s;cin>>s;
++mp[s];
if(remeber[s]==1){
continue;
}
if(mp[s]>max){
max=mp[s];
remeber[s]=1;
}
}
cout<<max;
}
// 64 位输出请用 printf("%lld")