例如: 输入 A手中牌为:3-3-3-3-4-4-5-5-6-7-8-9-10-J-Q-K-A 再输入A已经出的牌:4-5-6-7-8-8-8 得到B可以出的最大顺子为:9-10-J-Q-K-A 例如: 输入 A手中牌为:3-3-3-3-8-8-8-8 再输入A已经出的牌:K-K-K-K 得到B可以出的最大顺子为:NO-CHAIN
def char_to_int(str_list:list): for i in range(len(str_list)): if str_list[i] == 'J': str_list[i] = '11' elif str_list[i] == 'Q': str_list[i] = '12' elif str_list[i] == 'K': str_list[i] = '13' elif str_list[i] == 'A': str_list[i] = '14' return str_list def int_to_char(str_list:list): for i in range(len(str_list)): if str_list[i] == '11': str_list[i] = 'J' elif str_list[i] == '12': str_list[i] = 'Q' elif str_list[i] == '13': str_list[i] = 'K' elif str_list[i] == '14': str_list[i] = 'A' return str_list A_shou = ['3', '3', '3', '3', '4', '4', '5', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'] A_chu = ['4', '5', '6', '7', '8', '8', '8'] A_all = A_shou + A_chu A_all = char_to_int(A_all) # 把JQKA转为数字 A_all = list(map(int,A_all)) #把A手里的牌转为数字 all_pai = list(range(3,15))*4 #所有扑克牌 for n in A_all: #所有的牌减掉A的所有牌,得到B的所有牌 all_pai.remove(n) B_all = list(set(all_pai)) #得到去重后B所有的牌 B_all.sort(reverse=True) all_list = [] sub_list = [] for x in B_all: sub_list.append(x) if x-1 not in B_all: if len(sub_list)!=1: all_list.append(sub_list) sub_list = [] print(all_list) all_list.sort(key=len,reverse=True) if len(all_list[0])<5: print('NO-CHAIN') else: shunzi = list(map(str,all_list[0])) shunzi = int_to_char(shunzi) print("-".join(shunzi[::-1]))