美文网首页
[2021-09-15][简单][NC63]扑克牌顺子

[2021-09-15][简单][NC63]扑克牌顺子

作者: 许忠慧 | 来源:发表于2021-09-15 04:57 被阅读0次

题目来源牛客网

描述
现在有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]
示例1
输入:[6,0,2,0,4]
返回值:true

示例2
输入:[0,3,2,6,4]
返回值:true

示例3
输入:[1,0,0,1,0]
返回值:false

示例4
输入:[13,12,11,0,1]
返回值:false

解题思路:
1、首先要搞清楚,连续5个数如果要组成顺子的必要条件是:
1)五个数不能是重复的数字(set函数去重,len函数求去重后列表长度)
2)最大值减去最小资必须等于4(sort函数对列表排序)
搞清楚这个规律是解题最关键的部分。
2、其次就是大小王的作用了,对解题产生了比较大的困扰。
两副牌最多有四个王。
先来分析下成为顺子的必须条件:
1)当有四个王的时候:不管剩余一张是什么,都一定能凑成顺子
2)当有三个王的时候:带着0只能有三个不重复值,且最大值减去除0外的最小值必须小于等于4
3)当有两个王的时候:带着0只能有四个不重复值,且最大值减去除0外的最小值必须小于等于4
4)当有一个王的时候:带0带着0只能有五个不重复值,且最大值减去除0外的最小值必须小于等于4
5)当没有王的时候:必须有五个不重复值,且最大值减去最小值必须等于4
除了上述这些成为顺子的条件,其他的都无法成为顺子

将思路转换为代码即可

class Solution:
    def IsContinuous(self, numbers):
        # write code here
        flag = numbers.count(0)
        numbers.sort()
        l = len(set(numbers))
        
        if flag == 0 and l == 5 and numbers[-1]-numbers[0] == 4:
            return True
        if flag == 1 and l == 5 and numbers[-1]-numbers[1]<=4:
            return True
        if flag == 4: 
            return True
        if l == 5-flag+1 and numbers[-1] - numbers[flag]<=4:
            return True
        return False

相关文章

  • [2021-09-15][简单][NC63]扑克牌顺子

    题目来源牛客网[https://www.nowcoder.com/practice/762836f4d43d43c...

  • 扑克牌顺子

    题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)......

  • 扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....

  • 扑克牌顺子

    一副扑克牌包含大小王,大小王可以当做任一张牌。从中抽取五张牌,判断这五张牌是不是顺子(A-> 1, J->11, ...

  • 扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....

  • 扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....

  • 扑克牌顺子

    LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)...他随机从...

  • 扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....

  • 扑克牌顺子

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:字符串 题目描述: LL今天心情特别好,因为他去买了...

  • 扑克牌顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_).....

网友评论

      本文标题:[2021-09-15][简单][NC63]扑克牌顺子

      本文链接:https://www.haomeiwen.com/subject/akfkgltx.html