- 描述
-
桥牌是一项两人对两人的四人扑克游戏。游戏过程分为叫牌和打牌,需要精确计算牌力,并和队友默契配合,是一项普及面很广的、有趣、益智的游戏。
这里我们不讨论复杂的叫牌体系和打牌规则,只讨论拿到一手牌后的排序过程(俗称理牌)。下图就是一副已经理好的牌。
理牌规则如下:
1. 同花色放在一起,花色之间按照 黑桃S、红心H、草花C、方片D 的顺序排放(为了使颜色交替,容易区分,本题理牌顺序如图为 黑桃 > 红心 > 草花 > 方片,与桥牌叫牌的顺序不同);
2. 同花色中,按从大到小的顺序排放,即 A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2(即A最大,2最小);现在给你一手牌,请按照上述理牌规则将其排序。
- 输入
- 输入一行,表示一手牌(保证为 13 张牌),每张牌用花色+大小表示。
花色为:S (表示Spade黑桃)、H (表示Heart红心)、C (表示Club草花)、D (表示Diamond方片);
大小为:A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2;
一张牌的花色和大小之间无空格,所有字母均大写,保证没有重复的牌。牌与牌之间有 1 个空格。行首行尾均无多余空格。 - 输出
- 输出一行,即排好序的这手牌。输出格式与输入一致。
- 样例输入
-
样例输入1 H2 S3 C3 D5 H6 C9 H9 C10 HJ SQ DQ SK CA 样例输入2 CA CK CQ CJ C10 C9 S2 S3 S4 S5 S6 S7 S8 样例输入3 SA HA CA DA SK HK CK DK SQ HQ DQ CQ SJ
- 样例输出
-
样例输出1 SK SQ S3 HJ H9 H6 H2 CA C10 C9 C3 DQ D5 样例输出2 S8 S7 S6 S5 S4 S3 S2 CA CK CQ CJ C10 C9 样例输出3 SA SK SQ SJ HA HK HQ CA CK CQ DA DK DQ
- 提示
- 数据范围和约定:
对于 30% 的数据,所有牌的大小均在 2 到 9 之间;
对于另外 20% 的数据,所有牌的花色相同;
对于全部数据,保证正好 13 张牌,且无重复牌(即没有花色和大小都相同的两张牌)。
提示:
本题不算难,但也绝对不好写。请不要着急写程序,先用5-10分钟仔细想一想每张牌怎么存?花色怎么计算和表示?大小怎么计算和表示?用哪种排序算法?需要定义什么数组,打算如何使用?
磨刀不误砍柴工。动手前足够的思考能帮你理清思路、发现问题、避开陷阱,节省大量调试的时间。