python3
题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。
分析:
0—表示大王小王可以表示任何数字
定义一个字典,其中键存放抽到的扑克牌
情况1:如果键连续为0,就结束本次循环,继续抽牌
情况2:如果键连续为某个非0数,则有重复值不可能是顺子
情况3:如果键值不连续,则进行最后判断
最后:在抽取的五张牌中,如果最大键和最小键之差大于四,则不可能为顺子
特殊情况:输入的数少于5个或者输入的全是0
def is_shunzi(a):
if len(a) <= 4:
return False
if list(set(a)) == [0]:
return True
hash_dict = dict()
for i in a:
if i == 0:
continue
if i in hash_dict.keys():
return False
else:
hash_dict[i] = 100
result = True if (max(hash_dict.keys())-min(hash_dict.keys())) <= 4 else False
return result
a = input()
data = [int(x) for x in a.split()]
print(is_shunzi(data))