恒__heng 2021-05-03 19:19 采纳率: 90%
浏览 181
已结题

车牌统计 C++/C

车牌统计

时间限制:1秒 内存限制:128M

题目描述

小计喜欢研究数字,他手记了N块车牌,想研究数字0~9中某两个数字相邻出现使用在车牌上的次数。

比如:68出现在100块车牌上、44出现在0块车牌上。

由于车牌太多希望你变成帮助他完成研究,并输出最多出现的车牌数。

输入描述

第1行,一个整数N,范围[1.. 100000];

下面有N行,每行是大写字母和数字组成的字符串,长度不超过10。

输出描述

某两个数字相邻出现在车牌的最多数

样例

输入

4
YE5777
YB5677
YC8367
YA77B3

输出

3

代码在平台测试为错误50%,不知道哪里错了,请指点

#include<iostream>
#include<string>
using namespace std;
struct node{
	string a;
}c[100001];
int main(){
	int n,cnt[11]={0};
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>c[i].a;
		for(int j=0;j<c[i].a.size();j++){
			if(c[i].a[j]>='0'&&c[i].a[j]<='9'){
				cnt[c[i].a[j]-'0']++;
			}
		}
	}
	int maxcnt=0,max=-1999,count[100001];
	for(int i=0;i<=9;i++){
		if(cnt[i]>max){
			max=cnt[i];
			maxcnt=i;
		}
	}
	char a=maxcnt+'0';
	for(int i=0;i<n;i++){
		for(int j=0;j<c[i].a.size();j++){
			if(c[i].a[j]==a){
				count[i]++;
			}
		}
	}
	max=-1999;
	for(int i=0;i<n;i++){
		if(max<count[i]){
			max=count[i];
		}
	}
	cout<<max;
	return 0;
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-05-04 08:41
    关注

    没看懂你的思路。我的想法是定义一个大小为100的整数数组,分别统计从00到99的两个数字出现的车牌数 车牌进行遍历,找出所有相邻都是数字的两位数,对应的统计数加1即可。注意,同一车牌要避免重复数累加,如777,就只能给77加1个车牌计数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日

悬赏问题

  • ¥50 这Mac系统提示虚拟内存不足,怎么解决
  • ¥15 Rs232电路无法收发数据,求帮助
  • ¥15 百度cookie扫码登录器
  • ¥15 微机原理汇编语言debug调试实验
  • ¥23 matlab可以把相图转换为庞加莱映射吗
  • ¥20 有偿,学生成绩信息管理系统
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本