Python checkio Cipher map解决方案

来源:互联网 发布:izeeyu是什么软件 编辑:程序博客网 时间:2024/06/01 09:43
我的解决方案: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):    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]
def recall_password(cipher_grille, ciphered_password):
    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)