输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。
IDEA
1.先考虑双王的情况,任意一方有双王,则胜出,joker JOKER或JOKER joker都算
2.两个人的牌数一样多,比较扑克牌第一个即可,如果哪一付手牌的位置靠后说明其牌大
3.两个人的牌数不一样多,有炸弹的一方胜出
CODE
#include<iostream> #include<fstream> #include<vector> #include<map> #include<string> #include<algorithm> using namespace std; int main(){ #ifndef ONLINE_JUDGE freopen("input.txt","r",stdin); #endif string input; getline(cin,input); //双王情况 if(input.find("joker JOKER")!=string::npos){ cout<<"joker JOKER"<<endl; return 0; } if(input.find("JOKER joker")!=string::npos){ cout<<"JOKER joker"<<endl; return 0; } string str="345678910JQKA2"; int index=input.find('-'); string left=input.substr(0,index); string right=input.substr(index+1); int l_cnt=count(left.begin(),left.end(),' '); int r_cnt=count(right.begin(),right.end(),' '); // 两副牌个数相同 if(l_cnt==r_cnt){ string l_first=left.substr(0,left.find(' ')); string r_first=right.substr(0,right.find(' ')); if(str.find(l_first)<str.find(r_first)){ cout<<right<<endl; }else{ cout<<left<<endl; } }else{ //输入中有3个空格,为4个数,一副是炸弹 ,另外一副不是,则炸弹最大 if(l_cnt==3){ cout<<left<<endl; }else if(r_cnt==3){ cout<<right<<endl; }else{ cout<<"ERROR"<<endl; } } return 0; }