如何优雅地在 VSCode 里刷 LeetCode

相信不少程序员以及还没有正式入行的「准程序员」们对 LeetCode 这个网站是相当之熟悉的,这是一个专供程序员们练习编程能力的网站,主要侧重于算法方面,但它也提供了数据库和 Shell 方面的练习。

作为一个最早期的、用户量也非常大的、面向大众的 OJ(Online Judge),LeetCode 在去年做了一个特别重大的决定 —— 正式进入中国。

虽然在 LeetCode 进入中国之前我们也能使用 LeetCode,但是由于其服务器远在太平洋的对岸,以至于使用体验往往不太好,为了能给中国这个互联网大国提供服务,LeetCode 专门建了一个中国站。

如何优雅地在 VSCode 里刷 LeetCode

相较于国际站,中国站有着完整的题库和一些中文阅读内容,但是社区的讨论热度相较于国际站要差不少,而且 LeetCode 有一些针对程序员在硅谷互联网公司求职做的功能,这些功能在中国站都被舍弃掉了。

不过中国站也并不是没有好处,中国站目前没有订阅计划,LeetCode 国际站的年度订阅费用换算成人民币是相当高的,这对很多学生来说很不友好。

如何优雅地在 VSCode 里刷 LeetCode

中国站会提供一些国内互联网企业的工作机会/实习机会,如果你刚好有这方面的能力,可以通过 LeetCode 直接投递简历。

可是,LeetCode 虽然提供了对处于国内的我们来说更方便的中国站,但是由于 LeetCode 网页上的 IDE 并不是很便于编写代码和调试,以至于一般我们都会自己在自己常用的 IDE 里新建一个代码文件,在代码写好、调试好之后再粘贴到 LeetCode 上进行评分。

这个操作虽然是在各种 OJ 上的标准操作,但是在互联网如此发达、IDE 可扩展性越来越高的今天,这种操作不够优雅。

这个时候,我们就应该拿出微软开发的敲码神器 VSCode 了。

如何优雅地在 VSCode 里刷 LeetCode

在 VSCode 上有一个 LeetCode 扩展在近期上架,目前还处于预览版的阶段。

在安装这个扩展之后,我们可以通过 F1 通过查找该扩展的功能呼出登录框,或者直接通过左侧的侧边栏进行登录。

如何优雅地在 VSCode 里刷 LeetCode

登录时我们可以自由切换中国版和美国版,在成功登录之后,我们就可以直接在左侧看到分类好的题目了。

如何优雅地在 VSCode 里刷 LeetCode

由于扩展在交互上做得还不是很流畅,在打开题目时我们需要右键点击题目,并且点击「Show Problem」才行,双击是没有反应的。

打开题目的时候,我们需要选择对应的语言,不同的语言题目本身的模板文件是不同的,所以这个必须是要手动选择的。

在选好语言之后,它会为我们自动下载对应的模板文件,文件中包含了题目的所有信息,题目的描述、输入输出样例等都是通过注释呈现的。

如何优雅地在 VSCode 里刷 LeetCode

这可能会给写题的过程带来一些麻烦,如果它能和 LeetCode 网页版一样左右拆分编辑器,一边显示题目信息,一边写代码的话,那么用 VSCode 刷题的体验会提升很多。

不过既然是在 VSCode 里,这也就不是什么大问题了,我们手动拆分编辑器,把题目内容复制粘贴一下,就能达到比较理想的效果。

所有下载下来的题目文件会自动存在你当前打开的文件夹下,在你写完了题目之后你可以随时再来到这个文件夹回顾你写过的题目。

如何优雅地在 VSCode 里刷 LeetCode

在你写完了你的程序,并且调试完成了之后,你可以直接通过下方的提交直接将你的代码提交到 LeetCode 进行评分。

如何优雅地在 VSCode 里刷 LeetCode

之后 LeetCode 会返回对应的结果。

目前它还并不能用于 LeetCode 的竞赛,只能用于普通的刷题,不过就普通的刷题而言,这个体验明显要比通过网页版刷题要好很多。


在功能上它还有继续加强的空间,例如引入官方的题解、评论等,目前这个扩展还不能完全地取代网页版的 LeetCode。

不过它确实给了我们一个调试提交一条龙的优雅刷题体验,这是目前任何在线 OJ 都不能比拟的。如果你恰好习惯使用 Python 或者 JavaScript 等和 VSCode 相容性更好的语言刷题,通过这个扩展你获得的体验提升会更加大。