在线题库整理及一些刷题注意事项

在线题库整理及一些刷题注意事项

  • 刷题站
    • CSDN
      • 编程语言支持
    • LeetCode
      • 编程语言支持
      • 数据库语言支持
    • 牛客网
      • 编程语言支持
      • 数据库语言支持
    • 洛谷
      • 编程语言支持
    • AcWing
      • 编程语言支持
    • 蓝桥
      • 编程语言支持
  • 做题的两种模式
    • 调用模式
    • 委托模式
  • 注意事项
  • 小结

刷题站

老顾一个人单打独斗太久了,与现在的发展严重脱节了,在今年又一次活跃起来的时候,发现天下大变。先是各种人工智能产品大爆发,gpt 之类的东西充斥眼球。然后发现以前不算大众的各种算法出现了很多很多题库网站。好家伙,老顾是被吓的一个激灵啊。赶紧跑起来,追随一下现在的潮流。人工智能咱学历低,玩不明白,算法题的话,老顾还是有信心去试试水的。于是就了解了一下现在都有哪些站可以刷题。

CSDN

第一个自然是CSDN啦,老顾是这里的忠实用户,他的题库倒是没有完全放开,从csdn学习进入,点开每日一练就可以做题了,每天刷新三个。听说,可以自己按题号变更。咱也没试过,不知道怎么搞。而且,C站这个,并不支持手机写代码。

编程语言支持

支持的语言种类不多:

Java,C,C++,C#,Python3,go,JavaScript(V8)

LeetCode

第二个是 leetcode ,偏重算法的一个题库。
在这里插入图片描述

编程语言支持

算法编程部分,支持的语言种类很多哦:

C++,Java,Python,Python3,C,C#,JavaScript,Ruby,Swift,Go,Scala,Kotlin,Rust,PHP,TypeScript,Racket,Erlang,Elixir,Dart

老顾只会少少的几个。。。。

数据库语言支持

数据库部分,也有几个不同的环境支持:

MySQL,MS SQL Server,Oracle

Shell 和多线程,只有少少的几个题,期待以后得扩充。(虽然老顾完全没见过,还不知道会不会做)

牛客网

牛客网,也是在问答里,有小伙伴提到了,老顾才知道这么个站。
在这里插入图片描述

编程语言支持

他这里就分的比较细了,算法编程支持的语言也不少:

Java,C++,Go,Python3,C,C#,JavaScript Node,TypeScript,Python2,PHP,Swift,Kotlin,Scala,Rust,Ruby,Groovy

数据库语言支持

然后是SQL篇,这个就仅仅支持 MySql 了。

python 篇老顾看不到,要会员了。。。

这里的内容,老顾觉得语法篇最适合刚学编程的人来刷一刷,可以加深语法的印象。
在线题库整理及一些刷题注意事项_第1张图片

洛谷

最近老顾新认识的大佬,问哥就喜欢用洛谷刷题,咱也没刷过,就随便逛逛。

在线题库整理及一些刷题注意事项_第2张图片
嗯。。。看洛谷自己的介绍,也是偏重算法的
在线题库整理及一些刷题注意事项_第3张图片

编程语言支持

然后进去看了看语言支持:

Pascal,C,C++14 (GCC 9),C++98,C++11,C++14,C++17,C++20,Python 3,PyPy 3,Java 8,Rust,Go,Haskell,Kotlin/JVM,Scala,C# Mono,Node.js LTS,PHP,Ruby,Perl

我就直呼好家伙,pascal 啊,多古老的语言了,还有就是 c# 后边怎么还有个 Mono?

AcWing

这是问哥介绍的,AcWing也是专注算法的,连个分类都没有。
在这里插入图片描述

编程语言支持

支持的语言不多,和CSDN有一拼了:

C++,C,Java,Python,Javascript,Python3,Go

蓝桥

最近又有蓝桥杯比赛,这才听说这个。。。结果跑去一看,好家伙。。。这是从98年就开始的一个赛事了啊。老顾真是孤陋寡闻了。
在线题库整理及一些刷题注意事项_第4张图片

编程语言支持

蓝桥算法挑战,支持的语言更少:

C++,C,Java,Python3

然后还有各个学校内部的题库,差不多就是这样。

做题的两种模式

说完了题库站,该说说怎么刷题了。

其实,以老顾看来,刷题其实分两种,一种是从输入到输出都可以自己控制的,比如蓝桥,比如C站,还有一种,是只能在现有基础上进行编写的,比如力扣,比如牛客。这两种分别对应了两个模式。

调用模式

如力扣牛客这样的,他会给定你一个类和方法名,你需要在这个类和方法下进行算法实现,而他验证结果的时候,是将这个类加载,调用指定方法,同时从别的地方加载用例,这样的好处就是减少了干扰,减少了骗分的情况。虽然还是有不少可以骗分的题就是了。

委托模式

例如蓝桥、C站这样的,则是另外一种,他完全不管你在代码里胡搞瞎搞些什么,他会用编译器调用你的程序,然后把用例挨个扔给你的程序,然后接收你程序返回的输出内容,具体什么数据类型,什么格式完全不管,这样的好处就是输出灵活,但是结果验证就很难受了,多一个少一个空格都不可以。

这两种模式应对起来稍有一些差异。

对于调用模式来说,他需要注意的一个点:

不要对输入的变量重新赋值,这里主要指的是引用型的数据,比如列表,比如矩阵之类的,很多题目是要求在原数据上进行调整,并不要求返回任何数据,他会根据引用自动比较原有变量的值,但是如果重新赋值(局部改变不算)后,引用地址就会发生改变,造成提交后,结果错误的问题。

同时,因为这种模式,所有的数据都是从外边调用进来的,很难进行骗分。

而他的好处则是,你在方法内可以任意输出信息,而这些信息不会被当做返回的内容,不影响最后结果。

对于委托模式来说,需要注意的点就多了

1、不要盲目相信预先给出的输入代码,很多题目的数据输入部分,他都预先做好了,但是,有很大可能会坑爹哦。比如C站这个《CSDN每日一练:鬼画符门之点点大阵》这个题目,就是经典的输入信息坑死人。
2、对于部分题目,输入部分并没有明确的数量,这类题目的输入控制大多需要自己做,需要自己进行异常捕捉,并确保输入信息不遗漏。
3、正确的读题,绝对除了答案之外,不要多输出那怕一个空格

对于委托模式,他有另外一个好处,就是你可以非常方便的用异常将所有用例都抛出来,在不理解题意的时候,看看用例,猜一下最后答案,有时候这个题目就理解了,就能做出来了。如果实在看不懂题目,如果答案范围比较小,也可以进行骗分的。反正线上编程,没有谁真的看你算法时候足够好。

注意事项

1、正确的读题

不是所有网站都和 CSDN 一样考阅读理解的,仔细读题,不要遗漏任何地方,尤其是输入和输出的部分。

2、正确的接收数据

对于调用模式还好说,他会给你正确的已处理好的数据,类型也是准确的,但是对于委托模式的,很多时候我们需要自己使用 input、readline 之类的方法接收数据,这个时候都是字符型哦,你需要按照输入说明,自己将他们转成或数值或列表,或其他什么东西。

3、在算法实现时,使用调试

大多数的做题站,都会有一个除了提交之外的按钮,可以自行定义示例数据进行测试,要灵活的使用这个哦,毕竟出题方给出的示例相对较少,而且不够强壮,你需要自己写两个用例,看看你的算法是否会出现异常

4、严格按照输出要求输出

不管是哪种模式,对这个多少都有一点要求,比如调用模式的原变量修改,比如委托模式的输出格式要求,还是那句话,除了要求之外的内容,尽量一个字符都不要输出。对委托模式来说,更不要画蛇添足的在输入时加什么提示。你对面给数据的是机器吖,你在给谁抛媚眼?

5、注意时间限制

有些时候,小伙伴们会参加一些竞赛性质的活动,这个时候,会有一定的时间要求,比如 leetcode ,要求就是 10:30 至 12:00 ,并不会因为你晚进场而改变结束时间,而 C 站这样的,则是从进场开始计时,约两小时左右。

小结

好了,一些关于刷题的内容就说到这里,如果有小伙伴有其他刷题站,也可以告知老顾,老顾对这些还是比较感兴趣的。

祝大家都能在疲惫的时候,刷题换换脑子放松一下。
在线题库整理及一些刷题注意事项_第5张图片

你可能感兴趣的:(入门,刷题,题库)