简介
EPI Judge的目的是作为我们的《编程面试要素》一书的伴侣。具体来说,这个项目包括以下内容。
- Python、Java和C++中每个问题的存根程序
- 涵盖常见角落案例和性能错误的测试案例
- 用于在你的机器上运行这些测试的框架
安装
以下是下载法官的方法。
$ git clone https://github.com/adnanaziz/EPIJudge.git
如果你没有git ,这里有一个关于安装git本身的好教程。
使用IDE运行判断器
请看这些一分钟的视频,看看如何轻松地开始使用judge。
Python
Java
C++
命令行运行
Python
$ python3 <program_name>.py
Java
使用 Makefile.
编译和运行一个特定的程序。
$ make <program_name>
例子。
$ make Anagrams
编译并运行你上次编辑的程序。
$ make
C++
你可以通过直接调用GCC和Clang来手动编译和运行所有程序。
$ g++ -pthread -std=c++14 -O3 -o anagrams anagrams.cc
你也可以使用提供的Makefile:make <program_name> 。你也可以使用提供的CMakeLists.txt文件来使用CMake。
$ make
默认的Makefile目标是最后编辑的文件。
$ make anagrams
常见问题
- 帮助,我的EPIJudge不工作了,我应该怎么做?
如果你确实有问题,例如,安装或有问题的测试,请随时通过电子邮件与我们联系。请尽可能详细地描述:最理想的是你能把问题的截屏视频上传到youtube;如果不能,请上传截图。对问题和你的环境(操作系统、语言版本、IDE和版本)的描述越详细,我们就越容易帮助你。
- 我是编程新手,没有任何种类的开发环境,我应该怎么做?
上述的IntelliJ集成开发环境是最好的,而且有免费的版本,对EPI法官来说可以正常工作。它们不包括编译器。你可以从Oracle 获取 Java 开发环境,从Python.org 获取 Python 开发环境。对于C++,你有多种选择。最简单的是安装VisualStudio,它包括IDE和编译器。谷歌是一个很好的安装帮助资源。
-
哪些编译器是支持法官的?
- C++
- Linux
- GCC5.4.1和更新的版本
- Clang4.0和更新版本
- OS X
- 苹果LLVM Clang9.0.0及更新版本
- Windows
- Visual Studio2017及更新版本
- MinGWGCC 5.4.0及更新版本
- LXSS(Linux的Windows子系统) GCC 5.4.0及更新版本
- Linux
- 爪哇
- Java9及更新版本
- Python
- Python3.7及更新版本
- C++
-
哪些编译器被支持用于解决方案?
- C++
- Linux
- GCC7.0.0及更新版本
- Clang5.0及更新版本
- OS X
- 苹果LLVM Clang9.0.0及更新版本
- Windows
- Visual Studio2017和更新的版本
- MinGWGCC 7.2.0及更新版本
- LXSS(Windows Subsystem for Linux) GCC 7.2.0及更新版本
- 爪哇
- Java9和更新的版本
- Python
- Python3.6及更新版本
- Linux
- C++
如果你设法用旧版本编译,请告诉我们。
- UI是什么样子的?
看一下这个截图。
- 我怎样才能更好地理解测试框架?
判断线束是相当复杂的(但不使用非标准的语言功能或库)。欢迎你研究它,但我们建议你不要对它进行修改(因为当你更新时,它会导致讨厌的合并冲突)。
- 我如何导入C++项目?
如果你想把项目导入你最喜欢的IDE,你可能需要用CMake创建IDE项目(CLion不需要这样做,它支持CMake,开箱即用)。
这里有一个生成Visual Studio项目的示例配方(所有CMake支持的IDE列表)。安装CMake后,打开你的终端,进入epi_judge_cpp 文件夹并运行以下命令。
mkdir vs
cd vs
cmake -G "Visual Studio 15 2017" ..
然后只要用Visual Studio打开epi_judge_cpp/vs/epi_judge_cpp.sln ,它就会加载所有EPI程序。
跟踪你的进度
本项目根部的index.html文件跟踪你在问题中的进展。具体来说,每一章都有一个扩展标签。点击它,你会看到你的进度,例如,如下图。每次你执行一个程序时,这个文件都会被更新。你可以用这个文件将书中的问题映射到存根程序中。
鸣谢
向在过去几个月中试用该版本的数百名用户表示衷心的感谢。像往常一样,我们从未被我们的读者的热情和承诺所打动;这也让我们发挥了最大的作用。