In a deck of cards, with each card have an integer written on it.
Return true if and only if your can choose X >= 2 such that it's possible to split the entire deck into 1 or more group S of Cards, where:
Each group has exactly X cards.All the cards in each group have the same integer.
Example 1:
Input: [1,2,3,4,4,3,2,1]
Output:true
Explanation:possible partition [1,1],[2,2],[3,3],[4,4]
Example 2:
Input: [1,1,1,2,2,2,3,3]
Output:false
Explanation:no possible partition.
Example 3:
Input: [1]
Output:false
Explanation:no possible partition.
Example 4:
Input: [+]
Output:true
Explanation:possible partition [in]
Example 5:
Input: [1,1,2,2,2,2]
Output:true
Explanation:possible partition [1,1],[2,2],[2,2]
Note:
1 <= deck.length <= 100000 <= deck[i] < 10000
class Solution: def hasGroupsSizeX(self, deck): """ :type deck: List[int] :rtype: bool """ deck.sort() x = 2 while x<=len(deck): if len(deck)%x!=0: x += 1 continue group = int(len(deck)/x) flag = True for i in range(group): if deck[i * x]!=deck[x*(i+1)-1]: flag = False break if flag: return True x += 1 return False
914. X of a Kind in a Deck of Cards