Return the decoded version of message according to the polybius cipher >>> BifidCipher().decode('qtltbdxrxlk') == 'testmessage' True
(self, message: str)
| 86 | return encoded_message |
| 87 | |
| 88 | def decode(self, message: str) -> str: |
| 89 | """ |
| 90 | Return the decoded version of message according to the polybius cipher |
| 91 | |
| 92 | >>> BifidCipher().decode('qtltbdxrxlk') == 'testmessage' |
| 93 | True |
| 94 | """ |
| 95 | message = message.lower() |
| 96 | message.replace(" ", "") |
| 97 | first_step = np.empty(2 * len(message)) |
| 98 | for letter_index in range(len(message)): |
| 99 | numbers = self.letter_to_numbers(message[letter_index]) |
| 100 | first_step[letter_index * 2] = numbers[0] |
| 101 | first_step[letter_index * 2 + 1] = numbers[1] |
| 102 | |
| 103 | second_step = first_step.reshape((2, len(message))) |
| 104 | decoded_message = "" |
| 105 | for numbers_index in range(len(message)): |
| 106 | index1 = int(second_step[0, numbers_index]) |
| 107 | index2 = int(second_step[1, numbers_index]) |
| 108 | letter = self.numbers_to_letter(index1, index2) |
| 109 | decoded_message = decoded_message + letter |
| 110 | |
| 111 | return decoded_message |