def decipher(cipher):
    t = ""
    ans = ""
    for i in range(len(cipher)):
        t += cipher[i]
        if int(t) > 96:
            ans += chr(int(t))
            t = ""
    return ans

def decipher2(c):
    c = c.replace("97","097").replace("98","098").replace("99","099")
    return "".join(chr(int(c[i:i+3])) for i in range(0,len(c),3))


cif = "10197115121"
print(decipher(cif))


'''
Consider the following ciphering algorithm:

    For each character replace it with its code.
    Concatenate all of the obtained numbers.

Given a ciphered string, return the initial one if it is known that it consists only 
of lowercase letters.

Note: here the character's code means its decimal ASCII code, the numerical representation 
of a character used by most modern programming languages.

Example

For cipher = "10197115121", the output should be
decipher(cipher) = "easy".

Explanation: charCode('e') = 101, charCode('a') = 97, charCode('s') = 115 and charCode('y') = 121.
'''