网易互娱游戏笔试 麻将胡排

a题目描述
七星不靠是中国麻将竞赛规则的番种,胡牌时由东南西北中发白7张,外加其他花色的
147、258、 369不相连
的牌型,且没有将牌而组成。
-百度百科
七星不靠中的七星是指:东西南北中发白,也就是牌中必须有这七张。而其它牌按下述
的来拼全:
东西南北中发白+147万+258饼+369条
东西南北中发白+147万+258条+369饼
东西南北中发白+147条+258万+369饼
东西南北中发白+147条+258饼+369万
东西南北中发白+147饼+258条+369万
东西南北中发白+147饼+258万+369条
由于胡牌时只需要14张牌,而上述组合均有16张,那么除了东西南北中发白必须有外,
其它三色可以随便去
掉两张,都可以组成七星不靠。
我们的任务是,假设我们的14张牌中已经包含了东西南北中发白这7张牌,另外的牌都是
万饼条的序数牌,给
出另外的这7张牌,判断是否能组成七星不靠。
输入描述:
输入第一行为一个正整数T (T<=1000), 表示有T组数据。
每组数据一行,包含7张牌,每张牌用"XY"表示,x为[1.. .9]的数字,Y为("W","
B", "T")中的-一个,分别表示
万,饼,条。注意,有可能出现同样的"XY",但是数量不会超过4个。
保证数据一定台法。 
输出描述:
对于每一组数据,输出YES或者NO,分别表示可以或者不可以组成七星不靠。
示例1输入输出示例仅供调试,后台判题数据一般不包含 示例
输入
复制
4
1T4T7T2B5B8B9W
1T2T3T4T5T6T7T
1B2W3T4B5W6T8W
2B8B5B2B6T7W4W
输出
YES
NO
YES
NO
 

/*功能:*/
#include<bits/stdc++.h>

using namespace std;

int main() {
	int n = 1;
	cin >> n;
	vector<string> vec(7);
	string str1 = "147", str2 = "258", str3 = "369";
	vector<string> vs = { "1T", "4T", "7T", "2B", "5B" ,"8B" ,"9W" };
	while (n--) {
		set<char> T, W, B;
		int index = 0;
		for (int i = 0; i < 7; ++i) {
			string tmp;
			cin >> tmp;
			//tmp = vs[index++];
			vec[i] = tmp;
			switch (tmp[1])
			{
			case 'T':
				T.insert(tmp[0]);
				break;
			case 'W':
				W.insert(tmp[0]);
				break;
			case 'B':
				B.insert(tmp[0]);
				break;
			default:
				break;
			}
		}
		if (T.size() > 3 || W.size() > 3 || B.size() > 3 || (T.size() + W.size() + B.size() < 7) ) {
			cout << "NO" << endl;
		}
		else {
			cout << "YES" << endl;
		}
		
	}
	return 0;
}

 

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页