DRM Messages
This commit is contained in:
23
drmmessages.py
Normal file
23
drmmessages.py
Normal file
@@ -0,0 +1,23 @@
|
||||
def sumOfValuesOfCharacters(s: str) -> int:
|
||||
return sum([ord(c) - 65 for c in s])
|
||||
|
||||
|
||||
def rotateString(s: str, r: int) -> str:
|
||||
return "".join([chr(((ord(c) - 65 + r) % 26) + 65) for c in s])
|
||||
|
||||
|
||||
def mergeStrings(a: str, b: str) -> str:
|
||||
return "".join(
|
||||
[rotateString(ca, sumOfValuesOfCharacters(cb)) for ca, cb in zip(a, b)]
|
||||
)
|
||||
|
||||
|
||||
def decrypt(drmmessage):
|
||||
half = len(drmmessage) // 2
|
||||
a, b = drmmessage[:half], drmmessage[half:]
|
||||
rota = rotateString(a, sumOfValuesOfCharacters(a))
|
||||
rotb = rotateString(b, sumOfValuesOfCharacters(b))
|
||||
return mergeStrings(rota, rotb)
|
||||
|
||||
|
||||
print(decrypt(input()))
|
||||
Reference in New Issue
Block a user