车牌统计
时间限制:1秒 内存限制:128M
题目描述
小计喜欢研究数字,他手记了N块车牌,想研究数字0~9中某两个数字相邻出现使用在车牌上的次数。
比如:68出现在100块车牌上、44出现在0块车牌上。
由于车牌太多希望你变成帮助他完成研究,并输出最多出现的车牌数。
输入描述
第1行,一个整数N,范围[1.. 100000];
下面有N行,每行是大写字母和数字组成的字符串,长度不超过10。
输出描述
某两个数字相邻出现在车牌的最多数
样例
输入
4 YE5777 YB5677 YC8367 YA77B3
输出
3
先枚举所有两位数字组成的字符串装在数组里,再循环每一个车牌号,再循环两位数字的数组,统计每一个两位数字出现的车牌号记录数,出现就+1,再存起来,使用map最后到存起来的计数map按照value排序,取出最大的就是结果了
C++的话,如果没有限制,可以用string的find函数,没找到返回-1
#include
#include
using namespace std;
int a[105];
int main(){
int n;
cin>>n;
string x;
for(int i=0;i<n;i++){
cin>>x;
for(int i=0;i<x.size()-1;i++){
if('0'<=x[i]&&x[i]<='9'){
if('0'<=x[i+1]&&x[i+1]<='9'){
a[(x[i]-'0')*10+(x[i]-'0')]++;
i++;
}
}
}
}
int maxn=0;
for(int i=0;i<=99;i++){
if(a[i]>maxn){
maxn=a[i];
}
}
cout<<maxn;
return 0;
}