Python 代码阻塞问题:母公司合作退货-Can';我似乎不明白什么是';尽管尝试了许多不同类型的测试用例,但这是错误的

Python 代码阻塞问题:母公司合作退货-Can';我似乎不明白什么是';尽管尝试了许多不同类型的测试用例,但这是错误的,python,python-3.x,Python,Python 3.x,目前正试图通过这些练习来学习和提高Python的水平;我试图解决的问题是一个调度任务,更具体地说是来自GoogleCodeJam2020的任务 我的代码通过了示例测试用例,但在提交时输出了错误的答案。我尝试了很多不同类型的测试用例来发现代码中的漏洞,但是没有一个能让我找到固有的问题 我的方法是通过增加开始时间对任务列表进行排序,然后将它们分配给Jamie或Cameron。如果其中一人的现有活动在要分配的开始时间之前结束,则另一人将被分配手头上的活动。如果两者都这样做,那么就不可能有一个有效的时间

目前正试图通过这些练习来学习和提高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()
用于读取测试用例,所以是一行行数字。我已经附上了上面示例测试(或原始问题)截图的链接。非常感谢!这确实是问题所在,在编写程序时,我完全排除了两次相同时间的可能性。