24 lines
624 B
Python
24 lines
624 B
Python
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()))
|