题解 | #逻辑题# #扑克牌顺子#

扑克牌顺子

https://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

#coding:utf-8
from sys import maxsize
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param numbers int整型一维数组 
# @return bool布尔型
#
class Solution:
    def IsContinuous(self , numbers):
        ##思路:大小王可以当任何牌,那么只要保证两种情况即可
        #1、最大的牌 - 最小的牌在5以内
        #2、各种大小的牌没有重复的(除了大小王)
        ##init
        occ_set = set()
        ret = True
        max_val = 0
        min_val = 100

        ##process
        for i in range(0, len(numbers)):
            cur_val = numbers[i]
            #条件2:如果已经出现过了,那么就不能组成顺子
            if cur_val in occ_set:
                ret = False
                break
            if cur_val != 0:
                max_val = max(max_val, cur_val)
                min_val = min(min_val, cur_val)
                occ_set.add(cur_val)
        if max_val - min_val >= 5:
            ret = False

        return ret

全部评论

相关推荐

榕城小榕树:1200单休,我去干点啥别的不好
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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