希望有更好的解法

题目描述

斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的,如今已风靡整个中国,并流行于互联网上。
牌型:
单顺,又称顺子,最少5张牌,最多12张牌(3…A)不能有2,也不能有大小王,不计花色。
例如:
3-4-5-6-7-8,7-8-9-10-J-Q,3-4-5-6-7-8-9-10-J-Q-K-A
可用的牌 3<4<5<6<7<8<9<10<J<Q<K<A<2<B(小王)<C(大王),每种牌除大小王外有四种花色
(共有13×4+2张牌)

输入描述

输入的第一行为当前手中的牌
输入的第二行为已经出过的牌(包括对手出的和自己出的牌)

输出描述

最长的顺子
对手可能构成的最长的顺子(如果有相同长度的顺子,输出牌面最大的那一个),
如果无法构成顺子,则输出 NO-CHAIN。

示例

示例1
输入
3-3-3-4-4-5-5-6-7-8-9-10-J-Q-K-A-A-A-A
4-5-6-7-8-8-8
输出
9-10-J-Q-K

示例2
输入
3-3-3-3-8-8-8-8
K-K-K-K
输出
NO-CHAIN
说明
剩余的牌无法构成顺子

在此记录:机试时因为大意,少写了等号,导致通过率83.3%,加上等号应该可以100%通过

# 字典存储扑克
# 可用的牌 3<4<5<6<7<8<9<10<J<Q<K<A<2<B(小王)<C(大王)
porker_num = {'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'J':11,'Q':12,'K':13,'A':14,'2':15,'B':16,'C':17}
porker_str = {3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'10',11:'J',12:'Q',13:'K',14:'A',15:'2',16:'B',17:'C'}# 所有的扑克
porker = []
lst = list(porker_num.values())
for i in range(4):porker.extend(lst[:-2])
porker.extend(lst[-2:])
porker.sort()
# print(porker)# 将自己的和已出的转换成数字
input_have = list(porker_num.get(k) for k in input().upper().split('-')) # 注意大小写转换
input_lost = list(porker_num.get(k) for k in input().upper().split('-'))
# print(input_lost)
# print(input_have)
temp = input_have + input_lost
# print(temp)# 找到剩余的牌
for j in range(len(temp)):if temp[j] in porker:porker.remove(temp[j])
remain_porker = list(set(porker))# 去掉2和大小王
if 15 in remain_porker:remain_porker.remove(15)
if 16 in remain_porker:remain_porker.remove(16)
if 17 in remain_porker:remain_porker.remove(17)
# print(remain_porker)# 找最长子串
def max_length(remain_porker,porker_str):result = []temp_res = []i = 1temp_res.append(remain_porker[0])while i < len(remain_porker):if remain_porker[i]-1 == remain_porker[i-1]:temp_res.append(remain_porker[i])i += 1else:if len(temp_res) >= len(result): # 等号不可省略,因为长度相等时,输出最大的子串;# 因为porker已经排序了,最大子串总在后面result = temp_res[:]temp_res.clear()temp_res.append(remain_porker[i])i += 1if len(temp_res) >= len(result): # 等号不可省略,因为长度相等时,输出最大的子串;# 因为porker已经排序了,最大子串总在后面result = temp_res[:]if 5 <= len(result) <= 12:s = '-'.join([porker_str[j] for j in result])return selse:return 'NO-CHAIN'
print(max_length(remain_porker,porker_str))

HUAWEI机试:最长的顺子相关推荐

  1. 华为OD机试 - 最长的顺子

    题目描述 斗地主起源于湖北十堰房县,据说是一位叫吴修全的年轻人根据当地流行的扑克玩法"跑得快"改编的,如今已风靡整个中国,并流行于互联网上. 牌型:单顺,又称顺子,最少5张牌,最多 ...

  2. 华为OD机试 -最长的元音字符串(Python) | 机试题+算法思路+考点+代码解析 【2023】

    最长的元音字符串 题目 定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字 ...

  3. 华为OD机试真题大全完整目录

    华为OD机试真题大全完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:华为OD机试真题大全 数量:406篇博文(2023年5月16日截止) 更新时间至:2023年5月16日(后续加上去的博文,会每 ...

  4. 清华软院保研机试总结

    清华软院保研机试的赛制与清华计算机系类似,由于相关信息较少,故根据亲身经历总结要点如下: 1.机试时长为3小时,一般有3道题,每道题有多个数据点,按数据点给分.每题分值在20~40分之间,总分100分 ...

  5. 设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案……

    2022年12月13日修改 原来的博客是 2018-09-21 17:34:47 发布 的啊,偶尔也有人让详细讲讲--行吧-- 题目: 设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出 ...

  6. 【华为OD机试真题 C++】最长的密码

    前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于OD机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steven ...

  7. 【华为机试真题 Python实现】最长方连续方波信号

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

  8. 华为机试:最长的指定瑕疵度的元音子串

    题目来源 华为机试:最长的指定瑕疵度的元音子串 题目描述 题目解析 滑动窗口太容易出错了 我们把它想象成一个队列,无脑往queue中塞元素,并且记录非元音的个数,当非元音的个数等于flow个时,记录最 ...

  9. 【华为OD机试B卷,GO题解独家】最长连续交替方波信号

    最近更新的博客 [喜报]华为OD统一考试(B卷)题库清单(已收录130题),更快,更全的 B 卷题库大纲 其他OD统一考试试卷整理 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机 ...

最新文章

  1. KingShard MySQL中间件快速入门
  2. mysql分组后组内排序_数据小白的转行之路-MYSQL(七)
  3. 给PUBG Mobile打上几十个数据标签解析霸榜原因
  4. MFC学习RepositionBars
  5. html-body相关标签
  6. Nexus 安装(Linux 环境)
  7. mac电脑如何与手机同步复制粘贴_如何将电脑里的文件同步到手机里?
  8. php 如何模拟浏览器,利用php的curl扩展进行模拟浏览器访问网页
  9. SpringMVC请求参数乱码问题
  10. 制作Linux的优盘启动盘
  11. graphviz安装_离线安装vscode插件,你可能会用到!
  12. jqgrid学习(二)
  13. Turbo码,接近完美的编码
  14. boost库使用总结
  15. 解决word里鼠标滚动速度慢
  16. 从源码分析Android的Glide库的图片加载流程及特点
  17. 矿物岩石学知识点总结
  18. 数值分析实验 实验3-1 牛顿下山法 python3实现
  19. 这篇文章告诉你三个能给视频去水印的软件
  20. Qt编写通用主界面V2019

热门文章

  1. mysql 金额_Mysql中金额使用DECIMAL类型
  2. 2021.6~2022.6实习、秋招总结
  3. Verilog HDL 快速入门
  4. 跨越40年的甲骨文公司,正在成为年轻一代的时尚选择
  5. k210 C语言开发-3 使用SD卡
  6. Creator2D横版游戏(2)背景图随主角移动 | 单独相机拍UI
  7. ipfs星际文件系统初体验
  8. 《乱音盒子》之《隐者小调》
  9. 关于mysql中无法显示中文的完美解决方案
  10. java语言程序设计第二版课后答案吴倩_java语言程序设计课后答案