8000 add a1z26 algorithm · dori-dev/python-algorithms@2ff8eb1 · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

< 8000 div class="Overlay-actionWrap">

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2ff8eb1

Browse files
committed
add a1z26 algorithm
1 parent b515155 commit 2ff8eb1

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

ciphers/a1z26.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""
2+
a1z26_encode('dori', 15) => [115, 126, 129, 120]
3+
a1z26_decode([115, 126, 129, 120], 15) => 'dori'
4+
complexity: O(n)
5+
"""
6+
7+
from typing import List
8+
9+
10+
def a1z26_encode(string: str, key: int) -> List[int]:
11+
result = []
12+
for letter in string:
13+
result.append(ord(letter) + abs(key))
14+
return result
15+
16+
17+
def a1z26_decode(encode_array: List[int], key: int) -> str:
18+
result = ''
19+
for element in encode_array:
20+
try:
21+
result += chr(element - abs(key))
22+
except ValueError:
23+
result += chr(element)
24+
return result
25+
26+
27+
if __name__ == '__main__':
28+
string_encode = a1z26_encode('mohammad dori', 8)
29+
print(string_encode)
30+
print(a1z26_decode(string_encode, 8))
31+
print(a1z26_encode('dori', 15) == [115, 126, 129, 120])
32+
print(a1z26_decode([115, 126, 129, 120], 15) == 'dori')

0 commit comments

Comments
 (0)
0