阿里蚂蚁 笔试题

题目:给出一组扑克袁常鑫较。每张扑克有特定花色和数值,且没有两张完全一样的扑克。
花色有“红桃”、“黑桃”、“方片”、“梅花”四种,大小分为“A, K, Q, J, T(代表10), 9, 8, 7, 6, 5, 4, 3, 2”(由大到小)。
五张完全不同的牌构成一幅手牌,我们需要比较两手牌的大小,两手牌可能部分牌是公用牌,
不同类型手牌大小规则由大到小如下:
Royal Flush: 只能是AKQJT,且同花
Flush Straight: 是同花,且是顺子(5432A是最小的顺子,最大的为AKQJT)
Four of a Kind: AAAAx(x表示任意牌, A表示四张一样大小的牌,如果两手牌都是Four of a Kind,则比较A的大小)
Full House: AAABB(A表示3张一样大小的牌,B表示2张一样大小的牌,如果两手牌都是Full House,则比较A的大小,如果两手牌都是Full Hose且A相同,则比较B的大小)
Straight:顺子(5432A是最小的顺子,最大的为AKQJT),但非同花
Flush: (5张牌花色相同,如果两手牌都是Flush,则比较最大的那张牌的大小,如果仍然一样,则以此类推,直到完全一样)
Three of a Kind: AAAxy (xy表示任意牌,且x>y, A表示3张一样大小的牌,如果两首牌都是Three of a Kind,则比较A的大小,如果A相同,比较x,如果x相同,比较y)
Two Pairs: AABBx (x表示任意牌,且A>B,如果两首牌都是Two pairs,则比较A的大小,如果A相同,比较B,如果B相同,比较x)
High Cards:abcde(a>b>c>d>e,以此比较大小)

输入:两手牌(数据结构自己定义,不考虑数据输入不合法,如,不用考虑输入为“黑桃X”),
然后比较大小。输出较大的手牌,如果相等则返回相等

猜你喜欢

转载自www.cnblogs.com/irobotzz/p/13171439.html