第六期编程竞赛回顾

CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
(请不要删掉此地址)

努力是为了让自己不平庸,你参加过哪些竞赛,有哪些收获?快来分享一下你的参赛经历吧!

前言/背景

偶然看到CSDN主页上的介绍,所以就顺手参加了一波,比赛的时候还差点忘记了,好在这个比赛并不强制要求统一时间答题。

大赛简介

CSDN每两周举办一次的周赛,目前已到第六期。内容是4个题目,难度不大,基本就是拼手速。但是那些4分钟能打完题目的就很离谱。另外写博客时只有一个答题报告,粘贴代码后还要自己调整缩进,非常费事。

参赛流程

1、9月18日 11:00前点击比赛报名,并于9月18日 8:30—11:00,PC端登陆考试系统(当前页面届时将开放考试入口),在2小时内完成考试作答
2、9月8日-9月26日,点击竞赛专属话题,在对应的模板编辑器里发稿成功即参与成功

参赛经历

解题思路

  • 第一题:
    严查军火,X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
def solution(self, n, vector):
	result = 0
	for i in range(n):
		if vector[i]=='ak' or vector[i]=='m4a1' or 			vector[i]=='skr':
			result += 1
return result
  • 第二题:
    鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个
    程序统计每年消耗数量最多的鬼画符吗?
def solution(self, n, vector):
	result = None
	Map = {}
	for i in range(n):
		if Map.get(vector[i]):
			Map[vector[i]] += 1
		else:
			Map[vector[i]] = 1
	c = 0
	for item in Map.items():
		if item[1] > c:
			c = item[1]
			result = item[0]
	return result
  • 第三题:
    收件邮箱,已知字符串str,str表示邮箱的不标准格式。其中”.”会被记录成”dot”,”@”记录成”at”。写一个程序将str转化成可用
    的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
    这里面有一些corner case需要注意
def solution(self, str):
   result = str[0]
   atTimes = False
   i = 1
   while i < (len(str)-3):
   	if not atTimes:
   		if str[i:(i+2)] == 'at':
   			result += '@'
   			i += 2
   			atTimes = True
   			continue
   		if str[i:(i+3)] == 'dot':
   			result += '.'
   			i += 3
   			continue
   		result += str[i]
   		i += 1
   		# 处理末尾的at
   	if not atTimes and i < (len(str)-2) and str[i:(i+2)] == 'at':
   		result += '@'
   		i += 2
   		aTimes = True
   		result += str[i:]
   return result
  • 第四题:
    最长递增的区间长度,给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9]最长区间2,3,8长度为3
def solution(self, n, arr):
	result = None
	arr.append(1e9+1)
	tmpL = 0
	L = 0
	for i in range(n):
		if arr[i] <= arr[i+1]:
			L += 1
		else:
		if tmpL < L:
			tmpL = L
		L = 0

	if L !=0 and (tmpL+1) < L:
		tmpL = L
	else:
		tmpL += 1
	return tmpL

经验心得

按照正常人的手速,是不可能拿到前几名的,毕竟读题加思考也要用4分钟。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

greatofdream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值