假设我们有一个多米诺骨牌列表。每个多米诺骨牌都有两个数字。如果a = c和b = d,或者a = d和b = c,则两个多米诺骨牌D [i] = [a,b]和D [j] = [c,d]相同。因此,一个多米诺骨牌可以逆转。我们必须返回对(i,j)的对数(i,j),其中0 <= i <j <Domino的长度,并确定D [i]等于D [j]。因此,如果多米诺骨牌列表类似于[[1、2],[2、1],[3、4],[6、5]。输出将为1
让我们看下面的实现以更好地理解-
class Solution(object):
def numEquivDominoPairs(self, dominoes):
d = {}
ans = 0
for i in dominoes:
i.sort()
i = tuple(i)
if i not in d:
d[i]= 1
else:
d[i]+=1
for b in d.values():
ans += ((b*(b-1))//2)
return ans
ob1 = Solution()print(ob1.numEquivDominoPairs([[1,2],[2,1],[3,4],[5,6], [4,3]]))[[1,2],[2,1],[3,4],[5,6],[4,3]]
输出结果
2