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