文章

2

粉丝

46

获赞

1

访问

971

头像
打牌 题解:
P1385 北京邮电大学
发布于2024年7月21日 12:33
阅读数 480

#include <bits/stdc++.h>

using namespace std;

bool check(string a, string b)
{
    // 存入自己的牌
    unordered_map<int, int> ha;
    for (int i = 0; i < a.size(); i ++ ) ha[a[i] - '0'] ++ ;

    // 获取对方第一张牌
    int tmp1 = b[0] - '0';

    // 牌型5
    if (b.size() == 5)
    {
        if (tmp1 == 5) return false;
        for (int i = tmp1 + 1; i <= 5; i ++ )
		{
            // 判断大于对方的顺子是否存在
			if (ha[i] && ha[i + 1] && ha[i + 2] && ha[i + 3] && ha[i + 4]) return true;	
		}
        return false;
    }
    // 牌型1-4
    else
    {
        for (int j = tmp1 + 1; j <= 9; j ++ )
        {
            if (ha[j] >= b.size()) return true;
        }
        return false;
    }
}

int main()
{
    string a, b;
    while (cin >> a >> b)
    {
        if (check(a, b)) puts("YES");
        else puts("NO");
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发