题解 | #逻辑题# #扑克牌顺子#
扑克牌顺子
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