Python 代码阻塞问题:母公司合作退货-Can';我似乎不明白什么是';尽管尝试了许多不同类型的测试用例,但这是错误的
目前正试图通过这些练习来学习和提高Python的水平;我试图解决的问题是一个调度任务,更具体地说是来自GoogleCodeJam2020的任务 我的代码通过了示例测试用例,但在提交时输出了错误的答案。我尝试了很多不同类型的测试用例来发现代码中的漏洞,但是没有一个能让我找到固有的问题 我的方法是通过增加开始时间对任务列表进行排序,然后将它们分配给Jamie或Cameron。如果其中一人的现有活动在要分配的开始时间之前结束,则另一人将被分配手头上的活动。如果两者都这样做,那么就不可能有一个有效的时间表 (我的代码通过了这些测试用例) 下面是我的代码,如果您能帮助我找到问题或失败的测试用例,我们将不胜感激:Python 代码阻塞问题:母公司合作退货-Can';我似乎不明白什么是';尽管尝试了许多不同类型的测试用例,但这是错误的,python,python-3.x,Python,Python 3.x,目前正试图通过这些练习来学习和提高Python的水平;我试图解决的问题是一个调度任务,更具体地说是来自GoogleCodeJam2020的任务 我的代码通过了示例测试用例,但在提交时输出了错误的答案。我尝试了很多不同类型的测试用例来发现代码中的漏洞,但是没有一个能让我找到固有的问题 我的方法是通过增加开始时间对任务列表进行排序,然后将它们分配给Jamie或Cameron。如果其中一人的现有活动在要分配的开始时间之前结束,则另一人将被分配手头上的活动。如果两者都这样做,那么就不可能有一个有效的时间
if __name__ == "__main__":
T = input()
for a in range(int(T)):
N = input()
orderedSchedule = []
output = ""
tasks = []
JamieEndtime = -1
CameronEndtime = -1
for b in range(int(N)):
line = input() # string input
singleTask = []
temp = line.split(" ") # separate numbers
singleTask.append(temp)
singleTask = singleTask[0]
tasks.append(singleTask)
for x in range(len(tasks)): # convert into integers
for y in range(len(tasks[0])):
tasks[x][y] = int(tasks[x][y])
unsortedTasks = tasks.copy()
tasks.sort()
for i in range(len(tasks)):
if tasks[i][0] < CameronEndtime:
orderedSchedule.append("J")
if tasks[i][0] < JamieEndtime:
output = "IMPOSSIBLE"
break
else:
JamieEndtime = tasks[i][1]
elif tasks[i][0] < JamieEndtime:
orderedSchedule.append("C")
if tasks[i][0] < CameronEndtime:
output = "IMPOSSIBLE"
break
else:
CameronEndtime = tasks[i][1]
elif tasks[i][0] >= JamieEndtime and tasks[i][0] >= CameronEndtime: # if no conflict at all
orderedSchedule.append("C") # assigned to Cameron by default
CameronEndtime = tasks[i][1]
if output == "IMPOSSIBLE":
break
for j in range(len(tasks)): # output schedule in order of initial input
if output == "IMPOSSIBLE":
break
index = tasks.index(unsortedTasks[j])
output += orderedSchedule[index]
print("Case #" + str(a+1) + ": " + output)
如果名称=“\uuuuu main\uuuuuuuu”:
T=输入()
对于范围内的(int(T)):
N=输入()
orderedSchedule=[]
output=“”
任务=[]
JamieEndtime=-1
CameronEndtime=-1
对于范围(int(N))内的b:
line=input()#字符串输入
单任务=[]
temp=行拆分(“”)#单独的数字
singleTask.append(临时)
singleTask=singleTask[0]
tasks.append(单任务)
对于范围内的x(len(tasks)):#转换为整数
对于范围内的y(len(任务[0]):
任务[x][y]=int(任务[x][y])
unsortedTasks=tasks.copy()
tasks.sort()
对于范围内的i(len(tasks)):
如果任务[i][0]=JamieEndtime和tasks[i][0]>=CameronEndtime:#如果根本没有冲突
orderedSchedule.append(“C”)#默认分配给Cameron
CameronEndtime=任务[i][1]
如果输出==“不可能”:
打破
对于范围内的j(len(tasks)):#按初始输入顺序的输出计划
如果输出==“不可能”:
打破
索引=任务。索引(未排序的任务[j])
输出+=orderedSchedule[索引]
打印(“Case#”+str(a+1)+:“+output)
我能打破它。测试用例:
1
2
1 2
1 2
Case #1: CC
它成功地完成了分配,但在编写输出字符串时失败。如果有两个任务具有相同的开始和结束时间,则检索分配的代码将失败。(对index函数的调用总是返回第一个匹配的位置。)问题语句不能保证所有任务的时间都是唯一的
可能还有其他缺陷,但这至少是一个。保持细节清晰简洁。解决您在哪里遇到的错误并粘贴您遇到的错误,以便社区能够更好地理解您的问题。您为所有
input()
s输入的内容是什么错误答案(或WA,如果您熟悉代码阻塞),我看不到他们使用的测试用例,所以我不知道错误的确切位置。input()
用于读取测试用例,所以是一行行数字。我已经附上了上面示例测试(或原始问题)截图的链接。非常感谢!这确实是问题所在,在编写程序时,我完全排除了两次相同时间的可能性。