剑指offer-python刷题-扑克牌顺子
发布日期:2021-07-28 12:03:14
浏览次数:3
分类:技术文章
本文共 1602 字,大约阅读时间需要 5 分钟。
题目:现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。
有如下规则: 1. A为1,J为11,Q为12,K为13,A不能视为14 2. 大、小王为 0,0可以看作任意牌 3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。 例如:给出数据[6,0,2,0,4] 中间的两个0一个看作3,一个看作5 。即:[6,3,2,5,4] 这样这五张牌在[2,6]区间连续,输出true 数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]方法一:
首先对数据进行排序,统计出数据中0的个数,然后判断后续相邻数字之差大于1的部分是否超过数字0的个数。
# -*- coding:utf-8 -*-class Solution: def IsContinuous(self, numbers): # write code here numbers.sort() num_0 = 0 for i in range(len(numbers)-1): if numbers[i] == 0: num_0 += 1 continue if numbers[i+1] - numbers[i] != 0: #比较相邻数字之差大于1的部分与数字0的个数之间的关系 num_0 -= numbers[i+1] - numbers[i]-1 if num_0 < 0: return False else: return False return True
方法2:
由于限定数据都是又五个数组成的,理论上只要数字部分的最大值与最小值之差小于等于4,就可以说明该数据是顺子,但是要注意几种特殊情况的处理以及处理顺序。
# -*- coding:utf-8 -*-class Solution: def IsContinuous(self, numbers): # write code here numbers.sort() num_0 = 0 number_not_0 = [] for i in range(len(numbers)-1): if numbers[i] == 0: num_0 += 1 continue number_not_0 = numbers[i:] break #数据中有4个数字0时肯定是顺子 if num_0 == 4: return True #数据中非0部分如果存在重复数字则一定不是顺子 if len(number_not_0) != len(set(number_not_0)): return False #在满足上一个条件后,数据中非0部分的最大值与最小值之差比4小,一定是顺子 if max(number_not_0) - min(number_not_0) <= 4: return True #其他情况都不是顺子 return False
转载地址:https://blog.csdn.net/sinat_42437278/article/details/117734212 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月24日 00时10分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
史上最简单的spring-boot集成websocket的实现方式
2019-04-27
带你玩转属于自己的spring-boot-starter系列(一)
2019-04-27
带你玩转属于自己自己的spring-boot-starter系列(二)
2019-04-27
带你玩转属于自己的spring-boot-starter系列(三)
2019-04-27
基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现
2019-04-27
Linux文件管理参考
2019-04-27
FTP文件管理项目(本地云)项目日报(一)
2019-04-27
FTP文件管理项目(本地云)项目日报(二)
2019-04-27
FTP文件管理项目(本地云)项目日报(三)
2019-04-27
FTP文件管理项目(本地云)项目日报(四)
2019-04-27
【C++】勉强能看的线程池详解
2019-04-27
FTP文件管理项目(本地云)项目日报(五)
2019-04-27
FTP文件管理项目(本地云)项目日报(关于不定长包的测试)
2019-04-27
FTP文件管理项目(本地云)项目日报(六)
2019-04-27
FTP文件管理项目(本地云)项目日报(七)
2019-04-27
FTP文件管理项目(本地云)项目日报(八)
2019-04-27