概述
Alice和Bob玩牌,牌只有A>7>6>5>4>3>2这6种牌号。现在Alice和Bob都摸三张牌,要比较大小。三张牌有三种情况:三张相同>两张相同>各不相同。如果Alice和Bob的三张牌情况相同,则比较相同牌的大小,如果相同牌一样,则比较第二个大的牌、第三个大的牌。
输入T,代表需要输入T行,每行6个数字,前三个数字是Alice的牌,后三个数字是Bob的牌。
3
A A 7 A A A
2 3 2 4 A 3
3 2 4 4 3 2
然后输出每行牌的赢家,Alice或者Bob或者Tie(平局)。
Bob
Alice
Tie
#include<iostream>
#include<string>
using namespace std;
int cmp(char a, char b){
return a>b;
}
int category(string s){
// 全等
if(s[0] == s[1] && s[1] == s[2]){
return 3;
}
// 只有俩等
if(s[0] == s[1] && s[0] != s[2] || s[0] == s[2] && s[0] != s[1] || s[1] == s[2] && s[1] != s[0]){
return 2;
}
// 全不等
return 1;
}
//
int main(){
int T;
scanf("%d", &T);
char s, temp;
string a, b;
for(int i=0; i<T; i++){
a="", b="";
for(int j=0; j<6; j++){
cin >> temp;
j<3 ? a+=temp : b+=temp;
}
//
cout << "排序前:" << a << "
" << b << endl;
sort(a.begin(), a.end(), cmp);
sort(b.begin(), b.end(), cmp);
//
cout << "排序后:" << a << "
" << b << endl;
if(category(a) == category(b)){
//
cout << "同类型" << endl;
if(a>b){
cout << "Alice" << endl;
}else if(a<b){
cout << "Bob" << endl;
}else{
cout << "Tie" << endl;
}
}else if(category(a)<category(b)){
//
cout << "category(a)=" << category(a) << " < " << "category(b)=" << category(b) << endl;
cout << "Bob" << endl;
}else if(category(a)>category(b)){
//
cout << "category(a)=" << category(a) << " > " << "category(b)=" << category(b) << endl;
cout << "Alice" << endl;
}
}
return 0;
}
最后
以上就是深情皮带为你收集整理的联想笔试编程题的全部内容,希望文章能够帮你解决联想笔试编程题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复