CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
前言/背景
CSDN 在每两个星期左右会举办一次线上竞赛, 到目前为止已经举办第六期。 竞赛主要以选择题、编程题为主, 满分为 100 分, 支持Java、C、C++、C#、Python、JavaScript、lua、go等编程语言。
大赛简介
大赛主要由CSDN平台提供, 创立了竞赛奖和创作奖。
参赛流程
1.活动时间: 2022年9月8日~26日(竞赛截止时间2022年9月18日)
2.竞赛考试时间:2022年9月18日 8:30~11:00 (在此时间内进入系统作答即可)(答题时间 2 个小时, 即最晚 13:00 交卷)
3.获奖名单公布:2022年9月23日
4.获奖用户信息收集:2022年9月27日
5.奖品发布:2022年9月30日后 7个工作日内
参赛经历
一开始主要是 CSDN 通知栏推送信息才发现有这么一个比赛, 然后比赛时间在周末, 所以随手报名参加, 到时间就登陆系统进行答题。不知不觉已经参加了好几期的比赛, 但题目形式从选择题和编程题逐渐演变为这一次的只有编程题, 可能选择题就算作弊也难排查吧。
竞赛题目
一、严查枪火
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。
小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
二、鬼画符门
鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个
程序统计每年消耗数量最多的鬼画符吗?
三、收件邮箱
已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用
的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
四、最长递增的区间长度
给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3
解题思路
比如第四题, 实际上循环一遍, 如果前一个小于后一个就加一, 如果大于后一个就重新计算即可。
public static int solution(int n, ArrayList<Integer> arr){
int result = 0;
int calc = 0;
for (int i = 0; i < arr.size(); i++) {
if (i == 0 || arr.get(i) > arr.get(i - 1)) {
calc++;
} else {
calc = 1;
}
result = result > calc ? result : calc;
}
return result;
}
}
经验心得
用自己擅长的语言编写。对于我来说, 比 Java 比较熟的就用 Java 语言编写。
比赛建议
现金奖和实物奖需要写博文可以理解, 但想拿个电子勋章都要写, 那就…