# Unique Morse Code Words – Leetcode Solution

In this post, we are going to solve the 804. Unique Morse Code Words problem of Leetcode. This problem 804. Unique Morse Code Words is a Leetcode easy level problem. Let’s see code, 804. Unique Morse Code Words – Leetcode Solution.

We provide the solution to this problem in 3 programming languages i.e. Java, C++ & Python.

## Problem

International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows:

• ‘a’ maps to “.-“,
• ‘b’ maps to “-…”,
• ‘c’ maps to “-.-.”, and so on.

For convenience, the full table for the `26` letters of the English alphabet is given below:

``[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]``

Given an array of strings `words` where each word can be written as a concatenation of the Morse code of each letter.

• For example, `"cab"` can be written as `"-.-..--..."`, which is the concatenation of `"-.-.", ".-"`, and `"-..."`. We will call such a concatenation the transformation of a word.

Return the number of different transformations among all words we have.

### Example 1 :

``````
Input: words = ["gin","zen","gig","msg"]
Output: 2
Explanation: The transformation of each word is:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
There are 2 different transformations: "--...-." and "--...--.".
``````

### Example 2 :

``````
Input: words = ["a"]
Output: 1
``````

### Constraints

• `1 <= words.length <= 100`
• `1 <= words[i].length <= 12`
• `words[i]` consists of lowercase English letters.

Now, let’s see the code of 804. Unique Morse Code Words – Leetcode Solution.

# Unique Morse Code Words – Leetcode Solution

### 804. Unique Morse Code Words – Solution in Java

```class Solution {
public int uniqueMorseRepresentations(String[] words) {
String[] morse = {".-","-...","-.-.","-..",".","..-.","--.",
"....","..",".---","-.-",".-..","--","-.",
"---",".--.","--.-",".-.","...",
"-","..-","...-",".--","-..-","-.--","--.."
};

HashSet<String> wordsToCode = new HashSet<>();
for(String word : words){
StringBuilder code = new StringBuilder();
for(char ch : word.toCharArray()){
code.append(morse[ch-97]);
}
}
return wordsToCode.size();
}
}```

### 804. Unique Morse Code Words – Solution in C++

```class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
vector<string> a = {".-","-...","-.-.","-..",".","..-.","--.","....",
"..",".---","-.-",".-..","--","-.","---",".--.",
"--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};

unordered_map<string,int> um;

for (int i=0; i< words.size(); i++) {
string st;
for (int j=0; j<words[i].size(); j++)
st += a[words[i][j] - 'a'];
um[st]=1;
}

return um.size ();
}
};```

### 804. Unique Morse Code Words– Solution in Python

```class Solution:
def uniqueMorseRepresentations(self, words: List[str]) -> int:
s = set()
mos = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

for w in words:
m = ''
for l in w:
m += mos[ord(l) - ord('a')]