题目:
车牌统计
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 128MB,其他语言 256MB
难度:简单
分数:100 OI排行榜得分:10(0.1*分数+2*难度)
描述
小计喜欢研究数字,他手记了N块车牌,想研究数字0∼9中某两个数字相邻出现使用在车牌上的次数。
比如:68出现在100块车牌上、44出现在0块车牌上。
由于车牌太多希望你变成帮助他完成研究,并输出最多出现的车牌数。
输入描述
第1行,一个整数N,范围[1..100000];
下面有N行,每行是大写字母和数字组成的字符串,长度不超过10。
输出描述
某两个数字相邻出现在车牌的最多数。
用例输入 1
4 YE5777 YB5677 YC8367 YA77B3
用例输出 1
3
题解:
/*
1.每个字符串x有一个计算器,用计算器数组a[100],与字符串x对应。
2.用字符串数组b[100]记录字符串x。
*/
/*
1.查找s的子串x:s.find(x).从字符串s中查找子串x,如果找到了,返回x在s中的位置(x的首字母位置);否则,返回-1。
2.替换子串:s.replace(a,b,x).将字符串s中从下标a开始的b个字符,替换为字符串x
*/
#include<bits/stdc++.h>
using namespace std;
int n,a[100],m;
string x,s,b[110];
int main() {
for(int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
x=char(i+'0');
x+=char(j+'0');
b[i*10+j]=x;
}
}
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
for(int j=0;j<=99;j++)
if(s.find(b[j])!=-1){
a[j]++;
m=max(m,a[j]);
}
}
cout<<m;
return 0;
}
1013

被折叠的 条评论
为什么被折叠?



