给定一堆使用过的扑克牌数量未知不包含大小王请按照花色将所有扑克牌分成四类并且每类均按A~K的顺序排列。请选择合适的存储结构实现扑克牌的分类。算法使用伪代码描述无需编码实现
可以使用哈希表来实现扑克牌的分类,其中哈希表的键为花色,值为该花色对应的扑克牌列表。
伪代码如下:
// 初始化哈希表
hashTable = new HashTable()
// 初始化四个花色的扑克牌列表
hashTable["♠"] = []
hashTable["♥"] = []
hashTable["♣"] = []
hashTable["♦"] = []
// 遍历扑克牌列表
for card in cards:
// 根据花色将扑克牌添加到对应的列表中
suit = card.suit
hashTable[suit].append(card)
// 对每个花色的扑克牌列表进行排序
for suit in hashTable:
hashTable[suit].sort()
// 输出分类后的扑克牌列表
for suit in hashTable:
print(suit + ": " + hashTable[suit])
上述算法的时间复杂度为O(n),其中n为扑克牌的数量。
原文地址: http://www.cveoy.top/t/topic/i8D0 著作权归作者所有。请勿转载和采集!