刷 leetcode 的都是怎么进行本地调试的?

2021-01-15 03:14:08 +08:00
 waibunleung

如题,打算用 go 来刷题,但不确定本地应该怎么调试。因为某些题目是 leetcode 内部封装好了类的,比如链表和树,如果要自己本地调试的话,是不是还要自己手动实现链表和树这些数据结构?

求大佬解惑~

6361 次点击
所在节点    程序员
27 条回复
dcoder
2021-01-15 03:19:42 +08:00
你如果 wrong answer 了,LC 会告诉你最近一次的 input
然后你把 input copy 下来, 在本地:
s = Solution()
result = s.processInput( input )
然后你在自己程序里, 加入 print 或者 断点 都行

"链表和树" 一般题目里有定义, 比如 class Node, 你 copy 到本地就是
afewok
2021-01-15 05:25:24 +08:00
拿走不谢

```golang
type ListNode struct {
Val int
Next *ListNode
}

func showListNode(node *ListNode) {
if node == nil {
fmt.Println("node 为 nil")
return
}
for node != nil {
fmt.Printf("%v -> ", node.Val)
node = node.Next
}
fmt.Println("NULL")
}

type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
```
sinxccc
2021-01-15 05:27:36 +08:00
我倒是觉得尽量白板调试,然后重写重新提交。

毕竟刷 Leetcode 的目的单纯就是为了应付面试,实际面试的时候也不会给你机器上调试的机会。
jmc891205
2021-01-15 06:20:59 +08:00
在 leetcode 里加 print 看 stdout 。。。
Yvette
2021-01-15 06:21:57 +08:00
shiji
2021-01-15 06:57:15 +08:00
大佬们大多是不需要 debug 的
即使需要,print 出来的信息也足够用了。
laike9m
2021-01-15 07:00:50 +08:00
我之前就觉得 Cyberbrain 特别适合这个场景
https://github.com/laike9m/Cyberbrain

打算之后专门针对性地来优化一下
MasterCai
2021-01-15 07:28:38 +08:00
装个 vscode 的 leetcode 插件,就直接提交根据报错信息调试,和本地调试差别不大就是受网络环境影响可能得稍微等会
rodrick
2021-01-15 08:04:08 +08:00
vscode 的 leetcode 插件,不过只能根据报错信息调试比较麻烦
rwecho
2021-01-15 08:04:40 +08:00
@sinxccc 白班调试是什么意思?就是看吗?
lewis89
2021-01-15 08:11:37 +08:00
@rwecho #10 手写 testcase 用大脑推演... 白板编程就是纯粹用大脑去挑战机器
lewis89
2021-01-15 08:15:38 +08:00
@rwecho #10 真实世界编程 肯定要写小的 test case 跟断言,不然写这种算法 +1 -1 改错了就麻烦了
zhongrs232
2021-01-15 08:39:40 +08:00
vscode 的 leetcode debugger for c++插件,稍微研究一下很容易实现从文件输入测试用例和打断点调试
yzbythesea
2021-01-15 08:52:07 +08:00
Leetcode 的题应该先在纸上写,而且最好做到一遍写好。确定无误以后,再敲进电脑里,在官网上跑。
zstone123
2021-01-15 09:08:17 +08:00
就针对链表和树而言,要用的时候把结构复制一下。就是二楼那样不就完了。
Mithril
2021-01-15 09:10:58 +08:00
leetcode 都已经被这帮想不出来面试题的搞成新的五年高考三年模拟了。。。
KuroNekoFan
2021-01-15 09:13:28 +08:00
以前我是本地建个 html 跑,后来嫌麻烦就不这么做了,而且网页上有自定义 testcase input,你 console 也能在输出里看到,其实也足够 debug 了
bingoshe
2021-01-15 09:14:04 +08:00
推荐使用 idea+LeetCode 插件,十分好用,它会自动下载原始代码,不用手动复制,本地运行自然也支持 debug 。
kosmgco
2021-01-15 09:24:17 +08:00
数据结构这些都好说,题目给的注释里面都有。

还有一些是猜数字之类的,只给一个方法声明,没办法实现,也没办法在本地调试
cheshire
2021-01-15 09:26:33 +08:00
用 go 刷的话还是得自己实现一下这些数据结构不然调起来太麻烦了。厚着脸皮推荐一下我自用的。https://www.github.com/Catorpilor/leetcode/tree/master/utils

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX