Skip to content

Latest commit

 

History

History
29 lines (27 loc) · 2.44 KB

说明.md

File metadata and controls

29 lines (27 loc) · 2.44 KB

LeetCode本地测试工具

当你在LeetCode上用Python解决问题时,这个小工具可以帮你在本地编写和测试代码。

The English version README is here.

背景

在LeetCode上刷题时,我碰到了几个困难:

  • 如果没有高级版,很难在网站上调试。
  • 很难在本地运行和测试代码,因为LeetCode给出的代码模板不能直接运行,而且输入的格式和函数名字经常变化,这意味着,如果你使用
    arg1, arg2 = input().split()
    print(Solution.func(arg1, arg2))
    来测试代码,你就要经常修改函数名和参数,还要经常粘贴输入。
  • 即使按照上面的方式测试了代码,你也不能直接Ctrl+ACtrl+CCtrl+V来提交答案。这很不爽。 所以我试着开发一个小工具,让我能在单个文件里编写代码,输入只需要在本地写一次,测试也只需要运行一个脚本。

使用

这部分基于Pycharm。其他的IDE应该也能做到相似的事情。

  1. 设置一个Python运行/调试配置。
  2. 设置一个环境变量,其名字为TestDataPath,其值为一个本地文件的路径,你要在该文件中粘贴测试数据。这一步可以通过系统设置或者Pycharm中的Run -> Edit Configurations... -> Configuration -> Environment Variables来完成。 我已经把配置作为一个.xml文件上传了,所以你不必再手动调整配置,只需要直接使用LeetCodeTest配置即可。
  3. 在本项目中的answer.py里编写和测试你的代码。可以在LeetCode模板和该文件之间自由地全选、复制、粘贴。
  4. LeetCode给出的输入样例在被点击时会自动选中所有行,包含引号和换行。直接复制并粘贴到测试数据文件中即可,脚本会处理好它们。
  5. 提交答案时,只需要Ctrl+ACtrl+CCtrl+V

缺点

本项目有太多瑕疵,我不知道怎么解决。下面是一部分:

  • 本工具未适配Python之外的语言。
  • 如果你想在Solution类里添加更多函数,请记得把它们放在题目要求的函数前面,因为我是通过funcName = dir(answer.Solution)[-1]来获得这个函数名字的。(顺序真的重要吗?)
  • 处理不同类型和数量的输入的能力太弱了。我现在只能处理字符串输入,而且处理不同数量的输入的方法又丑又差。