扑克牌大小---牛客网
#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;