扑克牌大小_牛客题霸_牛客网 (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;