题解 | #扑克牌大小#

扑克牌大小

https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb

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

int main() {
    string str;
    getline(cin, str);
    string str1, str2;
    int pos = str.find('-');
    str1.append(str, 0, pos);
    str2.append(str, pos + 1, str.size());
    string result;
    int num1, num2;
    //数据类型转换
    if (str1[0] == '3') { num1 = 3; }
    else if (str1[0] == '4') { num1 = 4; }
    else if (str1[0] == '5') { num1 = 5; }
    else if (str1[0] == '6') { num1 = 6; }
    else if (str1[0] == '7') { num1 = 7; }
    else if (str1[0] == '8') { num1 = 8; }
    else if (str1[0] == '9') { num1 = 9; }
    else if ((str1[0] == '1' && str1[1] == '0')) { num1 = 10; }
    else if ((str1.size() == 1 && str1[0] == 'J') || \
        (str1.size() > 1 && str1[0] == 'J' && str1[1] == ' ') ) { num1 = 11; }
    else if (str1[0] == 'Q') { num1 = 12; }
    else if (str1[0] == 'K') { num1 = 13; }
    else if (str1[0] == 'A') { num1 = 14; }
    else if (str1[0] == '2') { num1 = 15; }
    else if ((str1.size() > 1 && str1[0] == 'j' && str1[1] == 'o') ) { num1 = 16; }
    else if ((str1.size() > 1 && str1[0] == 'J' && str1[1] == 'O') ) { num1 = 17; }


    if (str2[0] == '3') { num2 = 3; }
    else if (str2[0] == '4') { num2 = 4; }
    else if (str2[0] == '5') { num2 = 5; }
    else if (str2[0] == '6') { num2 = 6; }
    else if (str2[0] == '7') { num2 = 7; }
    else if (str2[0] == '8') { num2 = 8; }
    else if (str2[0] == '9') { num2 = 9; }
    else if ((str2[0] == '1' && str2[1] == '0')) { num2 = 10; }
    else if ((str2.size() == 1 && str2[0] == 'J') || \        
        (str2.size() > 1 && str2[0] == 'J' && str2[1] == ' '))  { num2 = 11; }
    else if (str2[0] == 'Q') { num2 = 12; }
    else if (str2[0] == 'K') { num2 = 13; }
    else if (str2[0] == 'A') { num2 = 14; }
    else if (str2[0] == '2') { num2 = 15; }
    else if ((str2.size() > 1 && str2[0] == 'j' && str2[1] == 'o') ) { num2 = 16; }
    else if ((str2.size() > 1 && str2[0] == 'J' && str2[1] == 'O') ) { num2 = 17; }


    //通过空格的个数判断牌的类型
    int count1 = 1, count2 = 1;
    for (auto it1 = str1.begin();it1 != str1.end();it1++) {
        if (*it1 == ' ') {
            count1++;
        }
    }
    for (auto it2 = str2.begin();it2 != str2.end();it2++) {
        if (*it2 == ' ') {
            count2++;
        }
    }



    if (count1 == 2 && num1 == 16) {
        result = str1;
    }
    else if (count2 == 2 && num2 == 16) {
        result = str2;
    }
    else if (count1 == 4 && count2 != 4) {
        result = str1;
    }
    else if (count2 == 4 && count1 != 4) {
        result = str2;
    }
    else if (count1 == 1 && count2 == 1) {//单张
        result = num1 > num2 ? str1 : str2;
    }
    else if (count1 == 2 && count2 == 2) {//对子
        result = num1 > num2 ? str1 : str2;
    }
    else if (count1 == 3 && count2 == 3) {//三张
        result = num1 > num2 ? str1 : str2;
    }
    else if (count1 == 4 && count2 == 4) {
        result = num1 > num2 ? str1 : str2;
    }
    else if (count1 == 5 && count2 == 5) {
        result = num1 > num2 ? str1 : str2;
    }
    else {
        result = "ERROR";
    }

    cout << result << endl;

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:00
机械打工仔:来挂自己了,经典巨婴从校园投入职场
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:31
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务