leetcode-debug
leetcode-debug copied to clipboard
LeetCode本地端调试器(C++语言)
功能
只需要复制 leetcode 中的测试用例到本地 testcases.txt 文件,复制 Solution() 类到本地 main.cpp 文件,main.cpp 文件能够逐行解析输入变量,从而实现在本地调试的功能。
演示
简单三步

使用方法
- 复制 Solution 类到 main.cpp
- 复制测试用例数据到 testcase.txt
- 复制成员函数名
- 运行
注意事项
-
leetcode中有些题目要求你实现一个自定义的类,对于这类题目,一个类有多个成员函数,输入数据包含了函数名和函数参数。为了演示如何处理这类题目,请使用
multiplefunction.cpp,对应的测试用例粘贴在在multifunction.txt, -
所有成员函数最终的调用点在
MemberFunciton::exec,请在此处自定义输出结果。 -
默认使用
cmake编译,c++ 标准要求 c++17 及以上。
原理
- 将类中所有成员函数名和成员函数地址对,注册到一个unordered_map,通过检索成员函数名即可找到成员函数地址。
- 为了存储不同的成员函数地址,需要将它们包装
MemberFunction类,且所有的MemberFunction类都需要继承自同一个MemberFunctionBase基类。 - 结合元编程中
type_traits的相关工具,将测试用例中的字符串解析成对应的函数的参数类型。 - 运行每一个测试用例中的函数。
目前支持处理如下的数据类型,这些类型应对大部分测试用例都是可以的。
intstringvector<int>vector<char>vector<vector<int>>vector<vector<char>>vector<string>ListNode*TreeNode*