我正在为一个问题编写一个解决方案,其中代码将在给定列表 a 的列表中找到毕达哥拉斯三元组的数量。但是,当我将代码提交给自动评分器时,在某些测试用例中我的代码会失败,但我不知道出了什么问题。请帮我指出我的错误......
def Q3(a):
lst = [i ** 2 for i in a]
lst.sort()
ans = 0
for x in lst:
for y in lst:
if (x + y) in lst:
ans += 1
return ans // 2
“勾股三元组”是勾股定理的整数解,例如,32+42=52。给定一个正整数列表,找出毕达哥拉斯三元组的数量。如果至少一个整数不同,则两个毕达哥拉斯三元组不同。
执行
· 实现一个函数 Q3(A),其中 A 是一个正整数列表。列表 A 的大小最大为 250。
· 列表 A 中没有重复项
· 此函数返回毕达哥拉斯三元组的数量。
样本
· Q3( [3,4,6,5] ) = 1
· Q3( [4,5,6] ) = 0