Go•x-of-a-kind-in-a-deck-of-cards/solution.go
package main
func hasGroupsSizeX(deck []int) bool {
counts := map[int]int{}
for _, card := range deck {
counts[card]++
}
gcd := func(a int, b int) int {
for b != 0 {
a, b = b, a%b
}
return a
}
divisor := 0
for _, count := range counts {
divisor = gcd(divisor, count)
}
return divisor >= 2
}
Python•x-of-a-kind-in-a-deck-of-cards/solution.py
from collections import Counter
from functools import reduce
from math import gcd
class Solution:
def hasGroupsSizeX(self, deck: list[int]) -> bool:
return reduce(gcd, Counter(deck).values()) >= class="syntax-number">2
TypeScript•x-of-a-kind-in-a-deck-of-cards/solution.ts
function hasGroupsSizeX(deck: number[]): boolean {
const counts = new Map<number, number>(); for (const card of deck) counts.set(card, (counts.get(card) ?? class="syntax-number">0) + class="syntax-number">1);
const gcd = (a: number, b: number): number => b === class="syntax-number">0 ? a : gcd(b, a % b);
let divisor = class="syntax-number">0; for (const count of counts.values()) divisor = gcd(divisor, count);
return divisor >= class="syntax-number">2;
}