7-4 4008 在线评判系统 分数 10 作者 周治国 单位 东北师范大学 李四正在建设一个在线评判系统,目前他万事俱备,只欠评判系统。评判系统必须去读正确数据文件和用户数据文件,然后比对这两个文件。如果这两个文件完全一样,系统返回“Accepted”,否则如果两个文件只是空格,tab键或换行有所区别的话,则返回“Presentation Error”,否则系统将返回“Wrong Answer”。 给定正确数据文件和用户结果文件,你的任务就是决定系统应该返回什么判断。 输入格式: 输入包括多组测试数据。第一行是整数T,表示测试数据的组数。接下来是T个测试数据。每个测试数据包括两个部分,正确的输出文件和用户结果文件。它们都是以一个单独的字符串“START”占一行表示开始。最后以字符串“END”表示结束。所有的数据都是在这两个字符串之间。所有的数据不超过5000个字符。 输出格式: 对于每个测试数据,输出评判系统应该返回的值。 输入样例: 4 START 1 + 2 = 3 END START 1+2=3 END START 1 + 2 = 3 END START 1 + 2 = 3 END START 1 + 2 = 3 END START 1 + 2 = 4 END START 1 + 2 = 3 END START 1 + 2 = 3 END 输出样例: Presentation Error Presentation Error Wrong Answer Presentation Error
时间: 2024-03-18 09:39:07 浏览: 114
以下是Python的代码实现:
```python
t = int(input()) # 测试数据组数
for _ in range(t):
input() # 读取START
# 读取正确数据文件,使用strip()方法去除开头和结尾的空格、制表符和换行符
correct = input().strip()
while True:
line = input().strip()
if line == "END":
break
correct += line # 将每行数据拼接到正确数据文件中
# 读取用户结果文件,使用strip()方法去除开头和结尾的空格、制表符和换行符
user = input().strip()
while True:
line = input().strip()
if line == "END":
break
user += line # 将每行数据拼接到用户结果文件中
# 比较正确数据文件和用户结果文件
if correct == user:
print("Accepted")
elif correct.replace(" ", "") == user.replace(" ", ""):
print("Presentation Error")
else:
print("Wrong Answer")
```
思路:
首先读入测试数据组数 `t`,然后对于每组测试数据,读取输入中的正确数据文件和用户结果文件。对于每个文件,我们使用 `input()` 方法逐行读取文件内容,并使用 `strip()` 方法去除每行开头和结尾的空格、制表符和换行符。然后将每行数据拼接到字符串中,得到完整的文件内容。
最后,我们比较正确数据文件和用户结果文件。如果两个文件完全一样,则返回“Accepted”;如果两个文件只是空格、制表符或换行符有所区别,则返回“Presentation Error”;否则返回“Wrong Answer”。
阅读全文