车牌统计 C++/C

车牌统计

时间限制: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;
}