|
Time |
Memory |
Case 1 |
1 sec |
32 MB |
Case 2 |
1 sec |
32 MB |
Case 3 |
1 sec |
32 MB |
Case 4 |
1 sec |
32 MB |
Case 5 |
1 sec |
32 MB |
Description
In this problem, you will learn how to encode and decode text using a frequency-based encoding rule. You will first create an encoding scheme based on the frequency of characters in a given text, and then use this scheme to decode a given encoded message.
Note:
- Characters should be converted to lower-case using the built-in function .lower().
- Consider spaces (' ') when counting character frequencies.
Input
- A string text (1 <= len(text) <= 10^4): represents the text to learn the encoding rule.
- A string message (1 <= len(message) <= 10^5): represents the message to be decoded.
Example Input:
Hello Jessie
1111110011011011111110011111011100101011110
Output
Decode the encoded message using the encoding scheme generated from the first line of the input text.
Encoding Rule:
- Count the frequency of each character in the text.
- Sort the characters in descending order based on their frequency. If multiple characters have the same frequency, maintain their order of occurrence.
- Encode the most frequent character with '0'.
- For each subsequent character, add a '1' to the left of the previous character's encoding.
Example Encoding:
'e': 3 times -> '0'
'l': 2 times -> '10'
's': 2 times -> '110'
'h': 1 time -> '1110'
'o': 1 time -> '11110'
' ': 1 time -> '111110'
'j': 1 time -> '1111110'
'i': 1 time -> '11111110'
Example Output:
jessie hello
Tags