资料结构_洗牌

题目

Input : 洗牌次数Input : 洗牌后该字元的新位置,(2 3 1)即第一张牌移到位置2、第二张牌移到位置3、第三张牌移到位置1Output : 洗牌后的依顺序列出所有卡牌Example:
假设有卡牌 A B C
Input : 2
Input : 2 3 1
第一次洗牌后 : C A B
第二次洗牌后 : B C A
Output : B C A

第一版,(写得很丑)

1.先把扑克牌list建好2.将order与卡牌关係放进dictionary[2]=S33.照顺序1~54将dictionary[]的值放进list4.print(list)
iRepeat = int(input())lst_order = input().split()sPre = 'S'lst = []dic = {}#1.先把扑克牌list建好for i in range (4):    if i ==1:        sPre = 'H'    elif i == 2:        sPre = 'C'        elif i ==3:        sPre = 'D'    for j in range(1,14):        lst.append(sPre + str(j))lst.append('J1')lst.append('J2')#print(lst)'''重複次数'''for n in range(iRepeat):    iIndex = 0    for i in lst_order:#2.将order与卡牌关係放进dictionary[2]=S3        dic[int(i)] = lst[iIndex]#dict[int] 跟 dict[str]不同        iIndex +=1    for j in range(54):#3.照顺序1~54将dictionary[]的值放进list        lst[j] = dic[j+1]#print(lst)sRtn = ""for i in lst:    sRtn += (i + " ")print(sRtn.rstrip())

第二版

扑克牌花色放进arrayPython可以用join以特定符号将list()隔开,' '.join(lst)
iRepeat = int(input())lst_order = input().split()lst_s = ['S','H','C','D']lst = []dic = {}#1.先把扑克牌list建好for i in range (4):    sPre = lst_s[i]    for j in range(1,14):        lst.append(sPre + str(j))lst.append('J1')lst.append('J2')#print(lst)'''重複次数'''for n in range(iRepeat):    iIndex = 0    #2.将order与卡牌关係放进dictionary[2]=S3    for i in lst_order:        dic[int(i)] = lst[iIndex] #dict[int] 跟 dict[str]不同        iIndex +=1        #3.照顺序1~54将dictionary[]的值放进list    for j in range(len(lst)):        lst[j] = dic[j+1]print(' '.join(lst))

本文纯自己做题目之笔记,如有更好的方法再麻烦各位指教~~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章