Python代码 李四正在建设一个在线评判系统,目前他万事俱备,只欠评判系统。评判系统必须去读正确数据文件和用户数据文件,然后比对这两个文件。如果这两个文件完全一样,系统返回“Accepted”,否则如果两个文件只是空格,tab键或换行有所区别的话,则返回“Presentation Error”,否则系统将返回“Wrong Answer”。 给定正确数据文件和用户结果文件,你的任务就是决定系统应该返回什么判断。 输入格式: 输入包括多组测试数据。第一行是整数T,表示测试数据的组数。接下来是T个测试数据。每个测试数据包括两个部分,正确的输出文件和用户结果文件。它们都是以一个单独的字符串“START”占一行表示开始。最后以字符串“END”表示结束。所有的数据都是在这两个字符串之间。所有的数据不超过5000个字符。 输出格式: 对于每个测试数据,输出评判系统应该返回的值。
时间: 2024-03-13 19:46:23 浏览: 72
基于python的天气预报系统设计和可视化数据分析
5星 · 资源好评率100%
下面是一个简单的 Python 代码实现,可以实现上述功能:
```python
import hashlib
def replace_space_tab_newline(s):
# 将字符串中的空格、tab键和换行符都替换成空格
return ' '.join(s.split())
T = int(input()) # 测试数据的组数
for i in range(T):
correct_file = input().strip() # 正确输出文件
user_file = input().strip() # 用户结果文件
input() # "START"
correct_output = ''
while True:
s = input().strip()
if s == 'END':
break
else:
correct_output += s + '\n'
input() # "START"
user_output = ''
while True:
s = input().strip()
if s == 'END':
break
else:
user_output += s + '\n'
if hashlib.sha256(correct_output.encode('utf-8')).hexdigest() == hashlib.sha256(user_output.encode('utf-8')).hexdigest():
print("Accepted")
else:
correct_output = replace_space_tab_newline(correct_output)
user_output = replace_space_tab_newline(user_output)
if correct_output == user_output:
print("Presentation Error")
else:
print("Wrong Answer")
```
其中,`hashlib.sha256()` 函数可以计算一个字符串的 SHA256 hash 值。`replace_space_tab_newline()` 函数可以将字符串中的空格、tab键和换行符都替换成空格。
阅读全文