首页 > 试题广场 >

扎金花

[编程题]扎金花
  • 热度指数:3563 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
 两个搜狐的程序员加了一个月班,终于放假了,于是他们决定扎金花渡过愉快的假期 。 游戏规则: 共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。 对于牌型的规则如下: 1.三张牌一样即为豹子 2.三张牌相连为顺子(A23不算顺子) 3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通牌型 在牌型一样时,比较牌型数值大小(如AAA>KKK,QAK>534,QQ2>10104) 在二人均无特殊牌型时,依次比较三张牌中最大的。大的人获胜,如果最大的牌一样,则比较第二大,以此类推(如37K>89Q) 如二人牌面相同,则为平局。 


输入描述:
输入两个字符串代表两个玩家的牌(如"10KQ" "354"),先输入的作为玩家1,后输入的作为玩家2


输出描述:
1 代表 玩家1赢 0 代表 平局 -1 代表 玩家2赢 -2 代表不合法的输入
示例1

输入

KQ3 3Q9 10QA 6102 5810 7KK 632 74J 10102 K77 JKJ 926 68K 27A

输出

1 1 -1 -1 1 1 -1
头像 贪吃的迪恩顶呱呱
发表于 2024-05-05 21:07:49
使用哈希表记录每张牌以及出现次数,利用哈希表的大小来判断是哪种类型的牌 #include <iostream> #include <string> #include <unordered_map> using namespace std; // 得出一个玩家的牌 展开全文
头像 牛客fd515346550号
发表于 2022-05-17 15:13:03
这个题的测试用例有点怪,所以要小小的处理一下,否则一个用例也通不过。借鉴以为大佬的思路并改正如下: public class Main { public static void main(String[] args) { Scanner in = new Scanner(S 展开全文
头像 觞乄默
发表于 2022-10-08 15:24:04
题目处的样例输入和输出没有换行,因此没法正确运行代码。以下为正确的输入示例(输出同样是每个数独占一行)KQ3 3Q9 10QA 6102 5810 7KK 632 74J 10102 K77 JKJ 926 68K 27A 思路:目的是比较两个牌的大小,为了简化比较方法,我们把牌型进行一系列转化,从 展开全文
头像 bandiaoz
发表于 2024-12-29 14:11:20
解题思路 牌型规则(从大到小): 豹子:三张相同的牌 顺子:三张连续的牌 对子:两张相同的牌 普通牌:比较最大牌 解题步骤: 解析输入字符串,转换为数字(2-14,其中J=11,Q=12,K=13,A=14) 对每个玩家的牌排序 判断牌型 按规则比较大小 代码 cpp 展开全文

问题信息

难度:
69条回答 14930浏览

热门推荐

通过挑战的用户

查看代码
扎金花