如果是“刷题”的话当然很low。如果可以不借助类似于C++中的STL模板,还能开心的刷几道算法题,享受编码的乐趣,的确是有点很酷的哦。(P.S. 如果是单纯懒得学其它语言的话,那的确很low。) 但是如果在比赛或者训练中使用C语言就显得有点......,因为估计很少人会在紧张的时间里思考如何实现一个栈或者队列,而是思考如何快速利用前人造的轮子(如STL等)解决题目。
举个现实一点的例子吧:
比如就从“团体程序设计天梯赛”来讲,前几道题往往是简单的输入输出:
用C语言实现是这样:- #include <stdio.h>
- int main (void)
- {
- printf(&#34;text&#34;);
- return 0;
- }
复制代码 但是使用Python是这样子的:- print(&#34;Text&#34;)
复制代码 所以说你觉得在竞赛激烈紧张的时间里使用哪一种语言更好呢?
那肯定是使用那些代码简洁的语言的啦。
其次,还应该考虑的另一个方面是与他人交流是否方便:
大多数人刷算法题使用的语言是C++,或者Java,再或者Python等,在分享题解时,往往会选择这种类型的语言,如果对这些语言不大了解的话,在遇到问题时可能会遇到连ACMer的题解都看不懂的情况(虽然个人觉得不同语言的语法大同小异, 重要的还是在乎解题思路,但是谁又能保证在不清楚其它语言的一些内置函数或者容器的情况下一定可以明了代码意图呢?)。
最后,真的可以要C语言“刷”leetcode吗:
众所周知,Leetcode上面的题还是不少的,其中不乏有需要使用复杂的数据结构的题目。
从小白角度来讲:连敲个简单的排序问题都费劲,用C语言实现那些复杂数据类型可能比解决问题本身都难。
从大佬角度来讲:虽然说敲个数据结构可能不是那么的难,但是要注意,leetcode上面题量还是可以的,如果每次都敲一遍的话,估计是个人都会敲吐吧,并且这对于大佬们宝贵的时间简直是浪费。(当然,其实如果觉得麻烦的话,还可以CV,但是修改CV后代码的过程又怎么会酣畅淋漓呢。)
所以说,可以试试,但是坚持的话还是不要了。嘻嘻,下面的推广也可以看看的呢,题主已经好久没吃小零食的呢。 <hr/>最后,介绍一个不错的语言——Python,文中的那一行代码你爱了吗,不需要啥铺垫,拎起来直接就来。用来写一些不是太难的算法还是挺好用的。这本书也是十分推荐的呢,入门必备。 |