扑克牌大小---牛客网

扑克牌大小_牛客题霸_牛客网 (nowcoder.com)

 

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;

string op(const string& line) {
    if (line.find("joker JOKER") != string::npos)//如果是对王 最大 直接返回即可
        return "joker JOKER";
    
    //找到分界点  再取到两手牌
    int at = line.find('-');
    string ch1 = line.substr(0, at);
    string ch2 = line.substr(at+1);
       
    //两手牌的个数
    //count 计算某个数据的某个值的个数
    //范围可以自己定
    //找出某个数据存在空格 找出有效数据个数  可以学习
    int size1 = count(ch1.begin(), ch1.end(), ' ') + 1;
    int size2 = count(ch2.begin(), ch2.end(), ' ') + 1;
    
    //当两手牌的数量相同
    if (size1 == size2) {
        //列出牌的大小顺序
        string s = "345678910JQKA2";
        //去找两种手牌的一个数 的位置
        //比较两种手牌第一个数的位置大小  越往后越大
        //这段利用举出例子后 查找位置 比较大小可以学习
        if (s.find(ch1[0]) > s.find(ch2[0])) 
        {
            return ch1;
        } 
        else 
        {
            return ch2;
        }
    } 

 

//如果不相同 那么一定存在炸弹
    else 
    {
        //去找哪个为炸弹即可
        if (size1 == 4)
            return ch1;
        else if (size2 == 4)
            return ch2;
    }
    //如果他们个数不同 并且不存在炸弹 那么无法比较
    return "ERROR";

}

int main() {
    string line;
    string ret;
    while (getline(cin, line)) {
        ret = op(line);
        cout << ret;
    }
}
    //两手牌的个数
    //count 计算某个数据的某个值的个数
    //范围可以自己定
    //找出某个数据存在空格 找出有效数据个数  可以学习
    int size1 = count(ch1.begin(), ch1.end(), ' ') + 1;
    int size2 = count(ch2.begin(), ch2.end(), ' ') + 1;

 

posted @ 2022-10-03 16:28  lemon-Breeze  阅读(85)  评论(0编辑  收藏  举报