2 条题解

  • 1
    @ 2025-6-6 20:04:34

    暴力即可。

    # 初始化二维数组表示牌的出现情况
    a = [[0 for i in range(14)] for j in range(5)]
    
    # 读取输入的牌数
    n = int(input())
    
    # 处理每张输入的牌
    for i in range(n):
        s = input()
        cnt1 = 0
        cnt2 = 0
        # 解析牌的花色
        if s[0] == 'D':
            cnt1 = 1
        elif s[0] == 'C':
            cnt1 = 2
        elif s[0] == 'H':
            cnt1 = 3
        elif s[0] == 'S':
            cnt1 = 4
        
        # 解析牌面点数
        if s[1] == 'A':
            cnt2 = 1
        elif '2' <= s[1] <= '9':
            cnt2 = int(s[1])
        elif s[1] == 'T':
            cnt2 = 10
        elif s[1] == 'J':
            cnt2 = 11
        elif s[1] == 'Q':
            cnt2 = 12
        elif s[1] == 'K':
            cnt2 = 13
        
        # 标记这张牌已出现
        a[cnt1][cnt2] = 1
        
    # 计算已出现的牌数
    count = 0
    for i in range(1, 5):
        for j in range(1, 14):
            count += a[i][j]
    
    # 输出未出现的牌数
    print(52 - count)
    
    • -2
      @ 2025-6-4 14:15:16

      打个表搞出个bool的二维数组,按要求记录每种牌是否有过即可,但是懒得重新打表了

      • 1

      信息

      ID
      985
      时间
      1000ms
      内存
      256MiB
      难度
      1
      标签
      (无)
      递交数
      489
      已通过
      150
      上传者