harrytothemoon / leetcodeAplus

Leetcode meeting note
2 stars 0 forks source link

[804] Unique Morse Code Words #46

Open tsungtingdu opened 4 years ago

tsungtingdu commented 4 years ago
var uniqueMorseRepresentations = function(words) {
    let code = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

    let set = new Set()

    for (let i = 0; i < words.length; i++) {
        let temp = ''
        for (let j = 0; j < words[i].length; j++) {
            let index = words[i][j].charCodeAt() - 97
            temp += code[index]
        }
        set.add(temp)
    }
    return set.size
};
windate3411 commented 4 years ago
var uniqueMorseRepresentations = function(words) {
    const MORSE_CODE = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
    const translatedWords = words.map(item => item.split('').map(word => MORSE_CODE[word.charCodeAt(0) - 97]).join(''))
    return new Set(translatedWords).size
};
harrytothemoon commented 4 years ago

上傳時發現竟然自己跟T4方法一樣😆

var uniqueMorseRepresentations = function(words) {
    let table = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
    let res = new Set()
    words.forEach(x => {
        let word = ""
        for (let i = 0; i < x.length; i++) {
            word += table[x[i].charCodeAt() - 96 - 1]
        }
        res.add(word)
    })
    return res.size
}
henry22 commented 4 years ago
/**
 * @param {string[]} words
 * @return {number}
 */
var uniqueMorseRepresentations = function(words) {
    const morseAlphabet = {
        a: '.-', 
        b: '-...',
        c: '-.-.',
        d: '-..',
        e: '.',
        f: '..-.',
        g: '--.',
        h: '....',
        i: '..',
        j: '.---',
        k: '-.-',
        l: '.-..',
        m: '--',
        n: '-.',
        o: '---',
        p: '.--.',
        q: '--.-',
        r: '.-.',
        s: '...',
        t: '-',
        u: '..-',
        v: '...-',
        w: '.--',
        x: '-..-',
        y: '-.--',
        z: '--..' 
    }

    return new Set(words.map(word => word.split('').map(letter => morseAlphabet[letter]).join(''))).size
};