Skip to content

914. X of a Kind in a Deck of Cards

Difficulty Topics

Description

You are given an integer array deck where deck[i] represents the number written on the ith card.

Partition the cards into one or more groups such that:

  • Each group has exactly x cards where x > 1, and
  • All the cards in one group have the same integer written on them.

Return true if such partition is possible, or false otherwise.

 

Example 1:

Input: deck = [1,2,3,4,4,3,2,1]
Output: true
Explanation: Possible partition [1,1],[2,2],[3,3],[4,4].

Example 2:

Input: deck = [1,1,1,2,2,2,3,3]
Output: false
Explanation: No possible partition.

 

Constraints:

  • 1 <= deck.length <= 104
  • 0 <= deck[i] < 104

Solution

x-of-a-kind-in-a-deck-of-cards.py
class Solution:
    def hasGroupsSizeX(self, deck: List[int]) -> bool:

        count = collections.Counter(deck)

        mini = min(count.values())

        if mini < 2: return False

        for i in range(mini,1,-1):
            check = all(value % i == 0 for value in count.values())

            if check: return True

        return False