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

相关推荐

2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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