题解 | #扑克牌大小#

扑克牌大小

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")

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务