题解 | #扑克牌大小#

https://www.nowcoder.com/practice/0a92c75f5d6b4db28fcfa3e65e5c9b3f

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

string findMax(const string& line) {
	if (line.find("joker JOKER") != string::npos) return "joker JOKER";

	int dash = line.find('-');
	// 分开两手牌!
	string card1 = line.substr(0, dash);
	string card2 = line.substr(dash + 1);

	// 获得两手牌中的张数!
	int card1_cnt = count(card1.begin(), card1.end(), ' ') + 1;
	int card2_cnt = count(card2.begin(), card2.end(), ' ') + 1;

	// 获取两手牌的各自第一张牌!
	string card1_first = card1.substr(0, card1.find(' '));
	string card2_first = card2.substr(0, card2.find(' '));

	if (card1_first == card2_first) {
		// == C++ 的运算符重载! 
		string str = "345678910JQLA2jokerJOKER";
		if (str.find(card1_first) > str.find(card2_first)) {
			return card1;
		}
		return card2;
	}
	if (card1_cnt == 4) return card1;
	else if (card2_cnt == 4) return card2;
	return "ERROR";
}

int main() {
	string line, res;
	while (getline(cin, line)) {
		res = findMax(line);
		cout << res << endl;
	}
	return 0;
}


全部评论
漏洞百出
1 回复 分享
发布于 2022-09-29 17:57 北京

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务