一副扑克牌除去大小王以外共有五十二张牌,包含黑桃(spade),红心(heart),梅花(club),方块(diamond)四种类型,每种类型有编号为1~13的十三张牌。 现在Josie想要和朋友一起玩牌,但手上的牌她不确定是否完整。请你编写程序,帮她计算一下缺少的牌有哪些。 输入 第一行输入为现有牌数n,接下来的n行为现有卡牌的信息(包含卡牌类型,卡牌数字),可能有重复的牌出现。 输出 输出缺少的牌,按照spade, heart, club, diamond的顺序依次输出。若两张牌类型一样,则按照数字大小依次输出。
时间: 2024-02-25 14:59:53 浏览: 22
好的,我可以帮你解决这个问题。以下是 Python 代码实现:
```python
cards = [[0] * 13 for _ in range(4)] # 用一个二维列表来表示四种花色的13张牌
# 读入现有牌数n
n = int(input())
# 读入现有卡牌的信息,并更新cards列表
for i in range(n):
card_type, card_num = input().split()
card_num = int(card_num) - 1 # 数字转化为0-12的索引
if card_type == 'spade':
cards[0][card_num] += 1
elif card_type == 'heart':
cards[1][card_num] += 1
elif card_type == 'club':
cards[2][card_num] += 1
elif card_type == 'diamond':
cards[3][card_num] += 1
# 输出缺少的牌
for i in range(4):
for j in range(13):
if cards[i][j] == 0:
card_type = ''
if i == 0:
card_type = 'spade'
elif i == 1:
card_type = 'heart'
elif i == 2:
card_type = 'club'
elif i == 3:
card_type = 'diamond'
print(card_type, j+1)
```
你可以将这段代码复制到本地 Python 环境中运行,输入测试数据,即可得到结果。