航电1004 气球数量问题

本文分享了一道ACM竞赛中的水题,讲述了因长时间未接触竞赛题目导致的解题困难,主要问题在于代码熟练度下降。题目要求找出输入字符数组中出现次数最多的一个,并考虑相同数量时按输入顺序输出。解决思路是使用一个指针跟踪最大数量的气球,遇到重复则回溯,记录每个字符串的出现次数,最终输出第一个最大数量的气球。附有AC代码。

一道水题,但因为好久没有碰过竞赛题目,所以憋了挺久的。
当然,主要问题是,代码熟练度下降了不少,所以写的时候思路会莫名奇妙卡住。
改了半天算是A了,本身题目没啥难点,就是比较输入的字符数组里面最多的那一个,当然,有个陷阱是,在有相同数量的气球的时候,需要根据输入的顺序输出一个,也就是说,结果只有一个,就是第一个遇到的最大数量的气球。(没注意这个条件,导致WA了,注意审题)。
思路就是找个找一个“指针”flag,每次都指向新的气球,如果输入的气球是重复的,flag就退后一步,间接的把重复输入的字符串减掉了,当然,对应重复的字符串的数组大小+1,根据每个字符串对应的数组大小判断重复多少次,最后输出第一个最大的气球就可以了。
AC代码如下:

#include<iostream>
#include<cstring>
#include<algorithm> 
#include<string>
using namespace std;
int main(){
   
   
	char a[1005][20];
	char g[1005][20];
	
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值