题解 | #扑克牌大小#

扑克牌大小

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

打卡
#include <iostream>
#include<algorithm>
#include <string>
#include <vector>
#include<sstream>
using namespace std;

void cmp(vector<string>a, vector<string>b) {
    vector<string>table = { "3","4","5","6","7","8","9","10","J","Q","K","A","2","joker","JOKER" };
    int pa = a.size(), pb = b.size(), da = find(table.begin(), table.end(), a[0]) - table.begin(), db = find(table.begin(), table.end(), b[0]) - table.begin();
    if (pa == 2 && a[0] == "joker" || pb == 2 && b[0] == "joker") {
        cout << "joker" << ' ' << "JOKER" << endl;
    }
    else if (pa == pb) {
        if (da > db) {
            for (int i = 0; i < pa; i++)
                cout << a[i] << ' ';
        }
        if (da < db) {
            for (int i = 0; i < pb; i++)
                cout << b[i] << ' ';
        }
    }
    else {
        if (pa == 4) {
            for (int i = 0; i < pa; i++)
                cout << a[0] << ' ';
        }
        else if (pb == 4) {
            for (int i = 0; i < pb; i++)
                cout << b[0] << ' ';
        }
        else cout << "ERROR";
    }
}

int main() {
    vector<string>a, b;
    string s, s1, s2;
    stringstream ss;
    getline(cin, s);
    int pos = s.find('-');
    s1 = s.substr(0, pos);
    s2 = s.substr(pos + 1);
    ss << s1;
    while (ss>>s) {
        a.push_back(s);
    }
    ss.clear();
    ss << s2;
    while (ss >> s) {
        b.push_back(s);
    }
    cmp(a, b);
    return 0;
}

全部评论

相关推荐

我在朝九晚六双休的联想等你:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务