Python 为什么此代码不是对所有情况都有效?

Python 为什么此代码不是对所有情况都有效?,python,Python,我正在尝试解决黑客等级的问题: 这是我的密码: L = [] check = True num_cases = int(input()) for i in range(num_cases): num_cubes = int(input()) inp = input() L = inp.split(" ") for m in range(0, len(L)): L[m] = int(L[m]) while len(L) != 1:

我正在尝试解决黑客等级的问题:

这是我的密码:

L = []
check = True
num_cases = int(input())
for i in range(num_cases):
    num_cubes = int(input())
    inp = input()
    L = inp.split(" ")
    for m in range(0, len(L)):
        L[m] = int(L[m])    
    while len(L) != 1:
        x = max(L)
        if L.count(x) <= 2:
            if x == L[0] or x == L[-1]:
                while x in L:
                    L.remove(x)
            else:
                check = False
                break
        else:
            check = False
            break
    if check == False:
        print("No")
    else:
        print("Yes")
    L = []
    check = True
这里我检查列表的最大值是否位于列表的两端

此代码适用于我给出的所有情况,但不适用于网站给出的任何情况

测试用例1:

测试用例1的预期解决方案:

另外,如果我需要以任何方式编辑我的问题,请通知我。

如果L.countx,您应该删除
L.countx有哪些失败的案例?请给出输入和预期输出I已编辑问题当输入由许多重复数字组成时,您的代码失败,例如6。你可以试着先解决这个问题。如果我正确理解了这个练习,它应该返回Yes,但是您的代码返回No.@Demi Lune Correct,因为行if L.countx您也可以尝试1 5 1 5,您将看到您在第一次迭代中删除了两个5,当你应该只删除最右边的一个。我不明白你的下半部分答案的大部分…建议?或者替代实现?在下面的部分和所有内容中,我添加了一个求解函数的示例