python3

扑克牌顺子

http://www.nowcoder.com/questionTerminal/762836f4d43d43ca9deb273b3de8e1f4

思路: 先count一下numbers中0的个数。

情况一 没有大小王:
如果没有0的话,找出最小值mini,因为顺子是差值为一的等差数列,判断sum(array)是否等于mini*5 + 10 ,如果是的话,返回True,反之返回False

情况二 有大小王:
先判断除了0之外,numbers中最大值max-最小值min是否大于4,如果大于4,直接返回False
否则,判断set(numbers)的长度是否等于 6-count(0),不等的话证明除了0之外的其他数有重复,有重复直接返回False,否则返回True

# -*- coding:utf-8 -*-
class Solution:
    def IsContinuous(self, numbers):
        # write code here
        if not numbers:
            return False
        ghost_count = numbers.count(0)
        if ghost_count:
            numbers.sort()
            mini = numbers[ghost_count]
            if (max(numbers)-mini)>4:
                return False
            if len(set(numbers))!= (6-ghost_count):
                return False
            return True
        else:
            if len(set(a)) < len(numbers):
                return False
            mini = min(numbers)
            if sum(numbers) == mini*5 +10:
                return True
            return False
全部评论
mini = numbers[ghost_count] 当有5个0的时候,这个下标越界了
点赞 回复 分享
发布于 2021-08-04 23:35
【2,4,4,4,6】你拿这个例子试试,就不行了。虽然牛客的测试用例通过了,但是,你这代码还是有问题的。
1 回复 分享
发布于 2020-02-29 21:00
我怎么觉得没问题?
点赞 回复 分享
发布于 2021-07-23 16:57

相关推荐

04-27 15:01
早稲田大学 Java
牛客72191338...:可能是时间点的问题,四月底机会确实会相对少点,但佬这个学历摆在这,会有机会的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
狄文君:多段项目经历 + 专业技能拉满,这简历很能打,坐等好消息!
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务