Go•number-of-equivalent-domino-pairs/solution.go
package main
func numEquivDominoPairs(dominoes [][]int) int {
count := map[int]int{}
pairs := 0
for _, domino := range dominoes {
first, second := domino[0], domino[1]
if first > second {
first, second = second, first
}
key := first*10 + second
pairs += count[key]
count[key]++
}
return pairs
}
Python•number-of-equivalent-domino-pairs/solution.py
class Solution:
def numEquivDominoPairs(self, dominoes: list[list[int]]) -> int:
count: dict[tuple[int, int], int] = {}; pairs = class="syntax-number">0
for first, second in dominoes:
key = (min(first, second), max(first, second)); pairs += count.get(key, class="syntax-number">0); count[key] = count.get(key, class="syntax-number">0) + class="syntax-number">1
return pairs
TypeScript•number-of-equivalent-domino-pairs/solution.ts
function numEquivDominoPairs(dominoes: number[][]): number {
const count = new Map<number, number>(); let pairs = class="syntax-number">0;
for (const [a, b] of dominoes) { const key = Math.min(a, b) * class="syntax-number">10 + Math.max(a, b); pairs += count.get(key) ?? class="syntax-number">0; count.set(key, (count.get(key) ?? class="syntax-number">0) + class="syntax-number">1); }
return pairs;
}