HJ88 扑克牌大小

【华为机试HJ88】扑克牌大小 JAVA全过程详解 一、题目描述 一副牌由54张扑克组成,含2~A各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王) 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 现提供两手牌,请比较它们的大小,输出较大的牌,如果不存在比较关系则输出“ERROR”。 基本规则: (1)输入每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,且顺子已经从小到大排列; (2)除 阅读详情
描述
扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER。
请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。
基本规则:
(1)输入每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,顺子已经从小到大排列;
(2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况(如:将对子拆分成个子);
(3)大小规则跟大家平时了解的常见规则相同,个子、对子、三个比较牌面大小;顺子比较最小牌大小;炸弹大于前面所有的牌,炸弹之间比较牌面大小;对王是最大的牌;

(4)输入的两手牌不会出现相等的情况。

 

 


输入描述:
输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。

输出描述:
输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。

示例1
输入:
4 4 4 4-joker JOKER

输出:
joker JOKER
#include <stdio.h>
#include <string.h>

#if 0
#define dbg printf
#else
#define dbg
#endif

char *poker[15] = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "joker", "JOKER"};

int get_cnt(char *a, int len)
{
    int i;
    int cnt = 1;
    
    for(i=0; i<len-1; i++)
    {
        if(a[i] == ' ')
        {
            cnt++;
        }
    }
    return cnt;
}

int get_1st_poker(char *a)
{
    int i = 0;
    char tmp[16] = {0};
    if(get_cnt(a, strlen(a)) > 1)
    {
        while(a[i] != ' ')
        {
            tmp[i] = a[i];
            i++;
        }
    }
    else
    {
        strcpy(tmp, a);
    }
    dbg("(%d):first poker=(%s)\n", __LINE__, tmp);
    
    for(i=0; i<15; i++)
    {
        if(strncmp(tmp, poker[i], strlen(tmp)) == 0)
        {
            return i;
        }
    }
    return -1;
}

int main(void)
{
    char a[32] = {0};
    char b[32] = {0};
    char c;
    int i, j;
    
    i = 0;
    while(scanf("%c", &c) != EOF)
    {
        if(c == '-')
        {
            break;
        }
        a[i++] = c;
    }
    i = 0;
    while(scanf("%c", &c) != EOF)
    {
        if(c == '\n')
        {
            break;
        }
        b[i++] = c;
    }
    
    dbg("(%d):a=%s, cnt_a=%d, b=%s, cnt_b=%d\n", __LINE__, a, get_cnt(a, strlen(a)), b, get_cnt(b, strlen(b)));
    get_1st_poker(a);
    get_1st_poker(b);
    dbg("(%d):b=%s, %d, %d\n", __LINE__, b, strncmp(a, "joker JOKER", strlen(a)), strncmp(b, "joker JOKER", strlen(b)));
    if(strncmp(a, "joker JOKER", strlen("joker JOKER"))==0 || strncmp(b, "joker JOKER", strlen("joker JOKER"))==0)
    {
        dbg("(%d):\n", __LINE__);
        printf("joker JOKER\n");
        goto END;
    }
    if(get_cnt(a, strlen(a))==4 || get_cnt(b, strlen(b))==4)
    {
        if(get_cnt(a, strlen(a)) != 4)
        {
            printf("%s\n", b);
            goto END;
        }
        if(get_cnt(b, strlen(b)) != 4)
        {
            printf("%s\n", a);
            goto END;
        }
        if(get_1st_poker(a) > get_1st_poker(b))
        {
            printf("%s\n", a);
        }
        else
        {
            printf("%s\n", b);
        }
        goto END;
    }
    if(get_cnt(a, strlen(a)) != get_cnt(b, strlen(b)))
    {
        printf("ERROR\n");
    }
    else
    {
        if(get_1st_poker(a) > get_1st_poker(b))
        {
            printf("%s\n", a);
        }
        else
        {
            printf("%s\n", b);
        }
        goto END;
    }
END:
    return 0;
}
HJ88 扑克牌大小——python ** 描述 ** 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格,如:4 4 4 4-joker JOKER。 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (1)输入每手牌可能 阅读详情

相关推荐

【牛客网华为机试】HJ88 扑克牌大小

题目 描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 345678910JQKA2jokerJOKER 输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4444-jokerJOKER。 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (1)输入每手牌可能是...

202xxx的博客 402

20190919滴滴,unity

滴滴 1. 没全A #include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; const int maxn=510; int G[maxn][maxn]; bool visit[maxn]; int n,m...

LXQ1071717521的博客 318

华为OJ题目 扑克牌大小

华为OJ难题 扑克牌大小解答

mioj德州扑克

小米oj —为某zhu筹备礼物的倒数72天 德州扑克 描述 德州扑克是风靡全球的一种扑克游戏。扑克有四种花色,分别为黑桃(S)、红桃(H)、梅花(C)、方片(D)。每种花色有13张牌,从小到大分别为2、3、4、5、6、7、8、9、10、J、Q、K、A。 考虑德州扑克中的如下三种牌形: 同花顺(Straight Flush):同一花色,并且连续的五张牌。 例如:{SK SQ SJ S10 S9}...

spark 1000

基于PLC1200与CB1241的RS485从站Modbus Rtu通信实战指南

本文提供了一份详细的西门子S7-1200 PLC与CB1241 RS485通讯板实现Modbus RTU从站通信的实战指南。内容涵盖从硬件接线、博途软件组态、关键参数设置到程序调试与测试的全过程,重点解析了Modbus_Slave指令配置与数据块映射,帮助工程师快速掌握工业自动化系统中的数据采集与设备接入技术。

Apple的专栏 793

魔改xjar支持springboot3,

其实这里基本就没问题了,实际项目中只要把这个spring-core包从私仓中替换,项目加密也就没有太大的毛病,但是这样对于追求完美的我来说,方便性还差点。原因找到了,看了下springboot github的issue,官方确实变更了,原因是因为springboot2中的。xjar项目文档还是不错的,clone下来,跟着文档,很容易就测试并通过了我的测试项目,于是便推给其他同事使用了。方法,那么问题来了,为啥springboot2没问题,spring3读取出来的却又是加密的,这是为毛?

jioulongzi的专栏 1536

88 扑克牌大小

题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格,如:4 4 4 4-joker JOKER。...

wenlyq的博客 612

香橙派5B-RK3588-NPU内核升级至0.9.8:RKLLM多模态部署实战

本文详细介绍了香橙派5B-RK3588设备NPU内核升级至0.9.8版本的完整流程,重点讲解了升级的必要性、两种升级方案(预编译包安装与自行编译内核)以及RKLLM SDK的安装配置。通过实战演示多模态模型转换与推理,显著提升AI计算性能,为嵌入式AI部署提供实用指南。

salt9的博客 1024

纸 牌 排 序

小诺诺喜欢玩纸牌比大小的游戏。现在有一副牌中的若干张纸牌,需要按牌面的数字从大到小的顺序排列,若数字大小相同则按花色从大到小(黑桃>红桃>梅花>方块)排列。牌面为A、J、Q、K分别用1、11、12、13表示;花色中的黑桃、红桃、梅花、方块分别用英文单词"spade"、"heart"、"club"、"diamond"表示。 输入格式: 测试数据有多组,首先输入测试的组数T (0<T<10),然后是T组测试数据;每组测试输入一行,按“花色 数字”的格式输入若干张牌,花色可能为"

weixin_53295504的博客 1767

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 346

【刷题】牛客网——扑克牌大小(输入两手牌,请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。)

题目描述: 牛客网——扑克牌大小 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格,如:4 4 4 4-joker JOKER。 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (.

m0_46613023的博客 753

27-eMMC电路设计

eMMC硬件电路设计

weixin_66510961的博客 4005

java-HJ88_扑克牌大小

java-HJ88 扑克牌大小。

d3y1`5 81_09 166

基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab

其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。

学习使你进步。 1128

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1766

【华为机试】HJ88 扑克牌大小

扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格,如:4 4 4 4-joker JOKER。输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格,如 4 4 4 4-joker JOKER。输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。如果都不是炸,则直接比较最小位。

weixin_45780075的博客 480

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为机试HJ88:扑克牌大小

C++实现——扑克牌大小

翟天保的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

华为机试HJ88 扑克牌大小

首先看一下题。

bingw0114的博客 1025

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《华为机试》刷题之HJ88 扑克牌大小

一、题目 二、示例 三、代码 dic = {'3' : 1, '4' : 2, '5' : 3, '6' : 4, '7' : 5, '8': 6, '9' : 7, '10' : 8, 'J' : 9, 'Q' : 10, 'K' : 11, 'A' : 12, '2' : 13, 'joker' : 14, 'JOKER' : 15} while True: try: s1, s2 = input().split('-') list

胡萝卜 831

算法 字符串【牛客网HJ88 扑克牌比大小 巧用string容器】

借助本题我们来复习一下string类。 先看题: 一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 345678910JQKA2jokerJOKER 输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4444-jokerJOKER。 请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。 基本规则: (1)输入每手...

Kukeoo的博客 466
上一篇: HJ87 密码强度等级(一把过)
下一篇: HJ89 24点运算(学习效率高的方法, 重点复习,第二种递归实现全排序判断)
你板子冒烟了
博客等级 码龄8年 1278粉丝 582原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值