DLNU-OnlineJudge
China震震
正在学习acm中,热爱it,大家一起交流学习啊!!!度厂实习生。
展开
-
OnlineJudge评测程序Python实现(一)Compile
前言:为了完成dlnuoj首先要解决的判题核心问题,这里采用Python语言的方法来实现。接下来将一步一步实现简单判题核心的功能。Compile篇(一)思路:通过Python的subprocess模块,调用外部命令,然后将代码生成相应的可执行文件即可。这里要注意外部命令的写法,各大OJ网站都有参考,当然也要跟据自身PC机环境,具体写法会在之后需要的时候进行更新。(二)代码:import time...原创 2018-03-19 18:07:20 · 3523 阅读 · 1 评论 -
OnlineJudge评测程序Python实现(二)JudgeResult
JudgeResult篇(一)思路:将用户程序执行过后生成的main.out文件与标准答案ans.out文件中的字符串取出进行简单的匹配比较即可得出相应的结果,思路较为简单。唯一要注意的一个点是:代码中有个replace('\r','')方法,它的作用就是将\r替换成空字符串。为什么要做这个替换呢?因为在windows下,文本的换行是"\r\n",而在Linux下是"\n"。因为不能确定测试数据来...原创 2018-03-19 18:43:11 · 2183 阅读 · 0 评论 -
OnlineJudge评测程序Python实现(三)Judge Time&Memory
Time&Memory篇(一)思路:先利用subprocess.Popen(),调用外部命令执行程序,将.in文件输入,将程序运行结果保存在.out文件中。程序数据输入和结果保存完成了,接下来就是时间和内存的问题。通过pid获取进程号,然后利用psutil模块实现进程的控制与监听,即可完成一个简单的Time&Memory的判断。(二)代码:import timeimport su...原创 2018-03-20 17:10:21 · 1660 阅读 · 0 评论