楼主:
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,听说相对简单!?
还请各位大神解惑~感谢
我没玩过 leetcode 但我的 UVa 都是纯 C 解题要说缺点就偶尔忘记,拿 // 当注解白白多一次失败纪录
作者:
Gway (我爱的你 也爱我 好吗?)
2019-09-09 08:27:00不建议 用C处理IO很麻烦 你想练的应该是解题思维?
不对吧,C++ 解题还是常常用 C 的 I/O function 去做像是 scanf 可以荣登排行榜第一名了C++ 解题的好处我会讲 STL
作者:
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:00S大讲的认同 但scanf我觉得比起cin 真的差蛮多的 我也觉得最大的优点是STL
楼主:
qazkevin (Linus)
2019-09-09 16:36:00听了各位大大的描述,感觉是建议用C++来刷题,而且要学会用STL,请问是这样吗?
我会说把 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:00UVa 用 // 会失败是因为它开 C89 模式吧……
是,所以 compiler 要记得调成 C90,有时候还是会忘
作者:
Gway (我爱的你 也爱我 好吗?)
2019-09-10 16:15:00Schotty真强者无误!少打一个k. Orz
作者:
Gway (我爱的你 也爱我 好吗?)
2019-09-10 19:10:00楼上 xD 如果练DS 自己造轮子是还不错拉 如果要练解题 应该锻炼思路(i.e algorithm)比较重要 ?
楼主:
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题就知道了,一直重刻基本资料结构无助于你解这些题目的思维
一直靠 STL 逃避基本资料结构就对解题思维有帮助?这跟用 Java 逃避学习大数运算差不多等级你一直逃避的东西,其实花个三天工夫就能把code背起来了每次都不记得,每次都重新写重新debug确实很没帮助没错而且在家解题,难道不会把以前写的拿出来剪贴吗 XD原PO目标是将来学习用C写kernel,kernel里面是另一个世界
作者:
cphe (魔鬼藏在垃圾筒里)
2019-09-11 18:37:00我曾经用C刷过快200题才这样讲,原po当然可以试试看,先想想为什么刷,目的在哪,就算kernel也都有API总不会为了实现一个功能连内建的东西都不用一般刷leetcode都是为了练习解题或面试,但如果是为了熟悉C语言,倒是可以这样做
用C语法 + STL叫C++编,不用真的懂很深的C++啦
C++ STL 在基础的资料结构上的操作会方便许多