CSDN 编程挑战赛第六期

CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16

前言/背景

第一次参加csdn的比赛,对于现役的acm选手来讲,题目着实有些偏简单,只要熟练的掌握stl的运用并且有点编程功底满分应该不难。

大赛简介

大赛包括前几期都是上午9-11点可以进入答题,无论什么时间进入都有两小时答题。排名靠前会获得奖金,奖品,实体证书等等。

比赛共四题,难度在力扣上难度分布大致为简单三道中等一道,或者简单两道,中等一道,困难一道。

比赛排名按照:先按照比赛得分,再按照比赛用时排名。

比赛支持多种语言,会提前写好基本的代码框架,答题者只需写核心代码即可。

比较函数示意如下

bool cmp(const player &a,const player &b)

{

     return a.score==b.score?a.timeb.score;

}

参赛流程

比赛流程相对来讲很容易,注意不要频繁切除页面,超过20次自动交卷。

提交题目后会返回通过率等信息,等到全部做完后可以直接交卷,系统会多次提示是否交卷并且告知交卷后不能再答题。

总之,流程体验还是不错的。

解题思路

A题

字符串的简单匹配。作为字符串的入门还是可以的。有兴趣的同学可以按照如下步骤学习字符串算法。

由于我们只需要全匹配三种字符,直接判断是否相等即可。

stl中string的使用——字符串哈希——KMP——KMP自动机——AC自动机——可持久化KMP——回文自动机——马拉车算法——后缀数组——后缀自动机——广义自动机

B题

利用map存储每个字符串出现的次数,然后利用打擂台的思想,维护一个max值,如果当前字符串出现次数大于max值则更新max并且跟新result为当前字符串

C题

匹配到dot,at之后判断是at是否在头尾部,然后再判断at是否是第一次转变。

对于题面:@字符出现过一次是否还需要再转换没有说明,建议说明题意,字符串中会出现哪些字符,不会出现哪些,也没说清楚,这题写的稍微花了点时间

D题

代码一句话vec[i]>vec[i-1]?maxx++,result=max(maxx,result):maxx=1;

如你所见,维护一个最大值并且跟新即可。

你可能感兴趣的:(java,开发语言)