算法题/扑克牌顺子

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))

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值