题解 | #扑克牌大小#
扑克牌大小
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")