真香!我觉得我下一次CCF可能要报python语言。

论python写算法题的优缺

列表
对于列表的操作,python很方便,而java要用数组或者Arraylist或LinkedList等集合库里面的东西。python还有列表解析等等黑魔法,写起来非常方便。python列表就是一个对象,可以直接以[1,2,3…]这样的方式赋值给任何变量,而java要声明一遍。java的包名又贼几把长。写一大堆东西。

字典
python的字典也非常方便,对于很多数据要组合成一个数据对象,可以用字典封装,而java要用类封装,而且写起来很白痴又长。字典就是map嘛,而java要用map又要导入集合库里的map库,而且操作也是贼几把繁琐。字典其实可以代替类的,毕竟都是封装数据。没有特定的行为需要封装,就不用类。

输入输出
python的输入可以一次性把一行的数据分开分别存储到不同变量,一共只需一行。而java要每个变量分别进行一次nextInt(),next()等操作
输出的话,我个人觉得python的str.format还不错,不是很喜欢%转换说明这种传统的printf操作。java输入输出和python也没啥好比。

标准库丰富
第三题里面,json和最近这次第十五次的第三题CIDR都可以用python里面自带的库来做,很方便,但是我见识短浅,连cidr是什么都不知道。我这次第三题看蒙了,跳过做第四题。
其他语言不知道有没有类似的网络知识的标准库,可能有,但是我不知道。

缺点:
认证的时候用IDLE写代码,就是安装python的时候自带的那个编辑器,跟记事本的差不多,又没有代码行数。开发效率立马就慢了好多倍。不过这个问题不大,平时练习的时候用IDLE打一段时间就好了,记一下快捷键,记不下,就打印出来拿进考场。
python运行速度慢,很多时候同样的思路c++和java就能通过用例100分,而python经常运行超时80或90。不过现在python认证,每道题的时间限制都是10s,这时间应该够用了。不过不能因为10s肯定够时间就用暴力解法,暴力解法在紧急关头最后没时间或者想不出思路的时候才用的,拿点用例分。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页