No.2判断扑克牌是不是顺子

从一副扑克中随机抽出5张牌,2-10代表相应数字,A代表1,J Q K代表11,12,13,大小王代表任何数字,写一个函数判断这5张牌是否是顺子

exits = ['A', '2', '3', '4', '5', '6', '7', '8', '9', 'J', 'Q', 'K', 'S', 'P'],S、P代表大王小王
ipt = '23Q45'
ipt1 = '31S45'
ipt2 = '13456'


def is_arithmetic_progression(prog):
    _len = len(prog)
    for i in range(0, _len - 2):
        if prog[i + 1] - prog[i] != prog[i + 2] - prog[i + 1]:
            return False
    return True


def check_str(ipt_str):
    sp1 = {'J': '10', 'A': '1', 'Q': '11', 'K': '12', 'S': '0', 'P': '0'}
    trs = list()
    for cr in ipt_str:
        if cr in sp1.keys():
            trs.append(int(sp1[cr]))
        else:
            trs.append(int(cr))
    if 0 in trs:
        trs.remove(0)
    trs.sort()
    result = is_arithmetic_progression(trs)
    if result:
        print('你的牌是顺子')
    else:
        print('你的牌不是顺子')


check_str(ipt1)

你可能感兴趣的:(算法与数据结构)