全部评论 4

  • 全程复制粘贴。。。

    2025-08-20 来自 浙江

    1
  • 其实不用这么麻烦,我们先把已拥有的牌输入到string a中,然后用sort排序(因为样例2出现输入有同样牌的情况),再遍历a,根据排序,我们已把同样牌放到相邻地方(a[i] == a[i + 1]),所以我们在遍历a时直接判断(a[i] != a[i + 1]),当这种情况满足时我们把已有牌数量+1,最后我们用已有牌数量减去52张牌数量就行了

    2026-02-06 来自 广东

    0
  • 硬的不行来软的是吧//🤪

    2025-09-23 来自 新疆

    0
  • 用switch也可以……

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n, record[4][13] = {}, cnt = 0;
        cin >> n;
        for(int i = 0; i < n; i++)
            {
                char num, flower;
                int num_t, flower_t;
                cin >> flower >> num;
                num_t = num - 49;
                switch(num)
                    {
                        case 'A':num_t = 0;break;
                        case 'T':num_t = 9;break;
                        case 'J':num_t = 10;break;
                        case 'Q':num_t = 11;break;
                        case 'K':num_t = 12;break;
                    }
                switch(flower)
                    {
                        case 'D':flower_t = 0;break;
                        case 'C':flower_t = 1;break;
                        case 'H':flower_t = 2;break;
                        case 'S':flower_t = 3;break;
                    }
                record[flower_t][num_t] = 1;
            }
        for(int i = 0; i < 4; i++)
            {
                for(int j = 0; j < 13; j++)
                    {
                        if(record[i][j] != 1)
                            cnt++;
                    }
            }
        cout << cnt;
        return 0;
    }
    

    2025-08-22 来自 浙江

    0
    • 确实可以哈,主要是是考试的时候做的,没往深了想

      2025-09-01 来自 浙江

      0
暂无数据

提交答案之后,这里将显示提交结果~

首页