题目
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))
本文纯自己做题目之笔记,如有更好的方法再麻烦各位指教~~