题解 | #扑克牌大小#

扑克牌大小

http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb

判断的情况挺多,写的有点乱

#include <algorithm>
#include <sstream>
#include <vector>
#include <map>


using namespace std;

int main() {
    string str;
    map<string,int> m={
        
        {"3",3},
        {"4",4},
        {"5",5},
        {"6",6},
        {"7",7},
        {"8",8},
        {"9",9},
        {"10",10},
        {"J",11},
        {"Q",12},
        {"k",13},
        {"A",14},
        {"joker",15},
        {"JOKER",16},
        
    };
    while(getline(cin,str)){
        vector<string> v;
        istringstream ss;
        ss.str(str);
        string temp;
        
        
        
        while(getline(ss,temp,'-')) v.push_back(temp);
        
        string temp1;
            istringstream stemp1,sstemp1;
            vector<string> equal_one,equal_two;
            
            
            stemp1.str(v[0]);
            while(getline(stemp1,temp1,' ')) equal_one.push_back(temp1);
            sstemp1.str(v[1]);
            while(getline(sstemp1,temp1,' ')) equal_two.push_back(temp1);
        if(equal_one.size()==equal_two.size()){
            
            
            if(equal_one.size()==1){
                if(m[equal_one[0]]>m[equal_two[0]])cout<<v[0]<<endl;
                else cout<<v[1]<<endl;
            }
            if(equal_one.size()==2){
                if(m[equal_one[0]]>m[equal_two[0]])cout<<v[0]<<endl;
                else cout<<v[1]<<endl;
            }
             if(equal_one.size()==3){
                if(m[equal_one[0]]>m[equal_two[0]])cout<<v[0]<<endl;
                else cout<<v[1]<<endl;
            }
            if(equal_one.size()==4){
                if(m[equal_one[0]]>m[equal_two[0]])cout<<v[0]<<endl;
                else cout<<v[1]<<endl;
            }
            if(equal_one.size()>4){
                if(m[equal_one[0]]>m[equal_two[0]])cout<<v[0]<<endl;
                else cout<<v[1]<<endl;
            }
        }
        else{
            if(equal_one.size()==4||equal_two.size()==4){
                if(equal_one.size()==4){
                    transform(equal_two[0].begin(), equal_two[0].end(),
                   equal_two[0].begin(), ::toupper);
                    if(equal_two[0]=="JOKER") cout<<v[1]<<endl;
                    else cout<<v[0]<<endl;
                }
                
                if(equal_two.size()==4){
                    transform(equal_one[0].begin(), equal_one[0].end(),
                   equal_one[0].begin(), ::toupper);
                    if(equal_one[0]=="JOKER") cout<<v[0]<<endl;
                    else cout<<v[1]<<endl;
                }
                
                
            }//if
            
            else{
                if(equal_one[0]=="joker")cout<<v[0]<<endl;
                else if(equal_two[0]=="joker") cout<<v[1]<<endl;
                else cout<<"ERROR"<<endl;
            }
        }//else
            
            
        
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务