我的解决方案: def recall_password(cipher_grille, ciphered_password): result ='' rangenumber = len(cipher_grille) positionlist = [] [positionlist.append((i,j)) if cipher_grille[i][j] == 'X' else '' for i in range(rangenumber) for j in range(rangenumber)] for j in range(rangenumber): c = ([ciphered_password[positionlist[i][0]][positionlist[i][1]] for i in range(rangenumber)]) result += ''.join(c) for k in range(0,rangenumber): positionlist[k]=(positionlist[k][1], rangenumber - 1 -positionlist[k][0]) positionlist.sort() return result 其他解决方案:
def recall_password(cipher_grille, ciphered_password):def recall_password(cipher_grille, ciphered_password): answ = ["","","",""] for x in range(4): for y in range(4): if cipher_grille[x][y] == 'X': answ[0]+= ciphered_password[x][y] if cipher_grille[3-y][x] == 'X': answ[1]+= ciphered_password[x][y] if cipher_grille[3-x][3-y] == 'X': answ[2]+= ciphered_password[x][y] if cipher_grille[y][3-x] == 'X': answ[3]+= ciphered_password[x][y] return answ[0] + answ[1] + answ[2] + answ[3]
x=cipher_grille
y=ciphered_password
answer=[]
for u in range(4):
c=0
for i in x:
for t in range(4):
if i[t]=="X":
answer.append(y[c][t])
c+=1
x = list(zip(*x[::-1]))
return "".join(answer)
Python checkio Cipher map解决方案
最新推荐文章于 2018-06-06 00:04:42 发布