from collections import defaultdict
# Dictionary of letter values
letter_values = {
'a': 22,
'b': 30,
'c': 300000000,
'd': 0,
'e': 2.7,
'f': 6,
'g': 9.8,
'h': 9,
'i': 'sqrt-1',
'j': '1/2(sqrt-1)',
'k': 11,
'l': 1000,
'm': 4,
'n': 3,
'o': 8,
'p': 7,
'q': 12,
'r': 'sqrt2',
's': 16,
't': 3.14,
'u': 2,
'v': 5,
'w': 18,
'x': 10,
'y': 120,
'z': 26,
' ': '␣'
}
# Normalize values as strings
normalized_values = {k: str(v) for k, v in letter_values.items()}
# Build reverse lookup
reverse_values = defaultdict(list)
for letter, val_str in normalized_values.items():
reverse_values[val_str].append(letter)
# Decode function
def decode_text(encoded_str):
decoded = []
tokens = encoded_str.split(',')
for token in tokens:
token = token.strip()
if token in reverse_values:
decoded.append(reverse_values[token][0]) # Pick first if multiple
else:
decoded.append('?') # Unknown value
return ''.join(decoded)
# --- MAIN PROGRAM ---
# Get user input
encoded_input = input("Enter encoded values (comma-separated): ")
decoded_output = decode_text(encoded_input)
print("Decoded text:", decoded_output)