804. Unique Morse Code Words
https://leetcode.com/problems/unique-morse-code-words/
js
/**
* @param {string[]} words
* @return {number}
*/
var uniqueMorseRepresentations = function(words) {
const morseList = [
'.-', '-...', '-.-.', '-..', '.', '..-.', '--.',
'....', '..', '.---', '-.-', '.-..', '--', '-.',
'---', '.--.', '--.-', '.-.', '...', '-',
'..-', '...-', '.--', '-..-', '-.--', '--..'
]
const morseMap = 'abcdefghijklmnopqrstuvwxyz'.split('').reduce((ret, l, i) => {
ret[l] = morseList[i]
return ret
}, {})
const codeMap = {}
words.forEach(w => {
const codes = w.split('').reduce((ret, l) => {
ret.push(morseMap[l])
return ret
}, []).join('')
codeMap[codes] = true
})
return Object.keys(codeMap).length
}
py
class Solution:
def uniqueMorseRepresentations(self, words):
"""
:type words: List[str]
:rtype: int
"""
morse = [
'.-', '-...', '-.-.', '-..', '.', '..-.', '--.',
'....', '..', '.---', '-.-', '.-..', '--', '-.',
'---', '.--.', '--.-', '.-.', '...', '-',
'..-', '...-', '.--', '-..-', '-.--', '--..'
]
codes = []
for w in words:
code = ''.join([morse[ord(l) - 97] for l in w])
codes.append(code)
return len(set(codes))