[问题] 请问大家会建议用纯C刷Leetcode吗?

楼主: qazkevin (Linus)   2019-09-09 00:56:31
如题,自己本身的工作内容是碰Linux Kernel Driver,
使用到的程式语言就是纯C,
比较不需要用到C++,
最近因为想增进自己的基本写程式能力,
想开始试着刷Leetcode,
但发现网络解答纯C的答案相当少,
假设未来工作发展也依然想往底层发展,
想请教各位大大给的建议为何?
例如:
1. 学底层应该只需要碰C,就用C刷题到底
2. 学C++比较好刷题,建议用C++来刷题,但长期写C++可能影响写C的逻辑!?
3. 反正只是想练习写程式,干脆另外学一个新的语言来刷题,
例如:python,听说相对简单!?
还请各位大神解惑~感谢
作者: Schottky (顺风相送)   2019-09-09 06:04:00
我没玩过 leetcode 但我的 UVa 都是纯 C 解题要说缺点就偶尔忘记,拿 // 当注解白白多一次失败纪录
作者: Gway (我爱的你 也爱我 好吗?)   2019-09-09 08:27:00
不建议 用C处理IO很麻烦 你想练的应该是解题思维?
作者: Schottky (顺风相送)   2019-09-09 08:31:00
不对吧,C++ 解题还是常常用 C 的 I/O function 去做像是 scanf 可以荣登排行榜第一名了C++ 解题的好处我会讲 STL
作者: wahaha279 (哇哈哈:3)   2019-09-09 09:26:00
听起来很爽
作者: sean72 (.)   2019-09-09 10:41:00
不建议用纯C, 不少题目要用priority queC++ STL有很多实用的container, 纯C只能自己手刻
作者: pmove (金疾柠檬)   2019-09-09 11:20:00
基本上在discuss页面通常会有c的解答,你很难当第一个
作者: Gway (我爱的你 也爱我 好吗?)   2019-09-09 11:49:00
S大讲的认同 但scanf我觉得比起cin 真的差蛮多的 我也觉得最大的优点是STL
楼主: qazkevin (Linus)   2019-09-09 16:36:00
听了各位大大的描述,感觉是建议用C++来刷题,而且要学会用STL,请问是这样吗?
作者: Schottky (顺风相送)   2019-09-09 20:42:00
我会说把 STL 常用的两三种资料结构背起来就无敌了反正目的不就是要练功吗,比别人多练两招又没有损失就第一次会有点痛而已,之后直接看小抄重复使用也行 XD严格来讲 STL 也不是 C++ 的精髓你只是把 C++ 的开发环境打开来写有 STL 的 C 而已...另一个在解题上有巨大优势的语言是 Java遇到大数题 (运算数字大到内建 integer 无法处理的题目)你可以不必自己写大数运算直接叫 Java 处理就好
楼主: qazkevin (Linus)   2019-09-09 21:34:00
感谢Schottky大大的回复!
作者: lantw44 (#######################)   2019-09-09 22:03:00
UVa 用 // 会失败是因为它开 C89 模式吧……
作者: Schottky (顺风相送)   2019-09-10 00:58:00
是,所以 compiler 要记得调成 C90,有时候还是会忘
作者: Gway (我爱的你 也爱我 好吗?)   2019-09-10 16:15:00
Schotty真强者无误!少打一个k. Orz
作者: b0920075 (Void)   2019-09-10 18:28:00
想学算法用C要顾虑很多小细节还要自己手刻很麻烦
作者: stfang925 (司马铃薯)   2019-09-10 18:57:00
我上次也听人家说第一次会有点痛而已
作者: Gway (我爱的你 也爱我 好吗?)   2019-09-10 19:10:00
楼上 xD 如果练DS 自己造轮子是还不错拉 如果要练解题 应该锻炼思路(i.e algorithm)比较重要 ?
作者: Killercat (杀人猫™)   2019-09-10 21:04:00
纯C刷leetcode是在自己找自己麻烦 除非你想刷榜cin/cout有一套加速的trickhttps://tinyurl.com/y55xhery 可以参考这篇 刷榜能用
楼主: qazkevin (Linus)   2019-09-10 22:02:00
听完各位大神的建议,我决定用C++来刷Leetcode,感谢各位大神!
作者: firejox (Tangent)   2019-09-11 00:04:00
用C也不错阿,毕竟有时DS的设计会跟其他不太一样像是kernel里的link list、rb tree
作者: pmove (金疾柠檬)   2019-09-11 11:00:00
我觉得要看原po的功力到哪里,解的顺不顺,在Java以前的年代,世界冠军用C刷题,效率还是很可怕的,如果原po只是一般人,建议用python刷题,总比查答案来的好。
作者: cphe (魔鬼藏在垃圾筒里)   2019-09-11 12:24:00
你先用C刷100题就知道了,一直重刻基本资料结构无助于你解这些题目的思维
作者: Schottky (顺风相送)   2019-09-11 14:27:00
一直靠 STL 逃避基本资料结构就对解题思维有帮助?这跟用 Java 逃避学习大数运算差不多等级你一直逃避的东西,其实花个三天工夫就能把code背起来了每次都不记得,每次都重新写重新debug确实很没帮助没错而且在家解题,难道不会把以前写的拿出来剪贴吗 XD原PO目标是将来学习用C写kernel,kernel里面是另一个世界
作者: cphe (魔鬼藏在垃圾筒里)   2019-09-11 18:37:00
我曾经用C刷过快200题才这样讲,原po当然可以试试看,先想想为什么刷,目的在哪,就算kernel也都有API总不会为了实现一个功能连内建的东西都不用一般刷leetcode都是为了练习解题或面试,但如果是为了熟悉C语言,倒是可以这样做
作者: michael0728n (蒜˙远古)   2019-09-12 19:08:00
用C语法 + STL叫C++编,不用真的懂很深的C++啦
作者: cuteSquirrel (松鼠)   2019-11-24 21:39:00
C++ STL 在基础的资料结构上的操作会方便许多

Links booklink

Contact Us: admin [ a t ] ucptt.com