Morse Code To English

Posted: 10 Nov, 2020
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

You are given a string of length N representing the morse code(s). You have to convert this code into the corresponding alphanumeric code containing small case english alphabet[a-z] and digits[0-9].

For your convenience, the full table for the 26 letters of the English alphabet and 10 numeric digits is given below:

list = [ ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----." ]      

where list[0] represents morse code for ‘a’, list[1] represents morse code for ‘b’, and list[35] represents morse code for ‘9’. Similarly, each letter and numeric is mapped with a morse code given in the list.               
Input Format:
The first line contains an integer 'T' which denotes the number of test cases or queries to be run. Then the test cases follow.

The first line of each test case contains the morse code in the form of a string.
Output format :
For each test case, print the equivalent alphanumeric code of the given morse code in a separate line.
Note:
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints:
1 <= T <= 10
1 <= N <= 5*(10^5)

Time Limit: 1sec
Approach 1
  • The idea to approach the problem is to store the character and its morse code as pairs. Make a HashMap which contains key-value pairs (where key = MorseCode and value = Character Equivalent).
  • Split the given morse code on the basis of spaces and store them in a list.
  • Traverse the list and store the equivalent character element by element in an empty string named ans. (For java we will use StringBuffer for optimized string operations).
  • Return string ans as our answer.
Try Problem