LeetCode in Kotlin

804. Unique Morse Code Words

Easy

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

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.

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:

Solution

class Solution {
    fun uniqueMorseRepresentations(words: Array<String>): Int {
        val morse = arrayOf(
            ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..",
            "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-",
            "-.--", "--..",
        )
        val set: MutableSet<String> = HashSet()
        for (word in words) {
            val temp = StringBuilder()
            for (c in word.toCharArray()) {
                temp.append(morse[c.code - 'a'.code])
            }
            set.add(temp.toString())
        }
        return set.size
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy