Go•unique-morse-code-words/solution.go
package main
import "strings"
func uniqueMorseRepresentations(words []string) int {
codes := []string{".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}
seen := map[string]bool{}
for _, word := range words {
var encoded strings.Builder
for _, letter := range word {
encoded.WriteString(codes[letter-'a'])
}
seen[encoded.String()] = true
}
return len(seen)
}
Python•unique-morse-code-words/solution.py
class Solution:
def uniqueMorseRepresentations(self, words: list[str]) -> int:
codes = [class="syntax-string">".-", class="syntax-string">"-...", class="syntax-string">"-.-.", class="syntax-string">"-..", class="syntax-string">".", class="syntax-string">"..-.", class="syntax-string">"--.", class="syntax-string">"....", class="syntax-string">"..", class="syntax-string">".---", class="syntax-string">"-.-", class="syntax-string">".-..", class="syntax-string">"--", class="syntax-string">"-.", class="syntax-string">"---", class="syntax-string">".--.", class="syntax-string">"--.-", class="syntax-string">".-.", class="syntax-string">"...", class="syntax-string">"-", class="syntax-string">"..-", class="syntax-string">"...-", class="syntax-string">".--", class="syntax-string">"-..-", class="syntax-string">"-.--", class="syntax-string">"--.."]
return len({class="syntax-string">"".join(codes[ord(letter) - ord(class="syntax-string">"a")] for letter in word) for word in words})
TypeScript•unique-morse-code-words/solution.ts
function uniqueMorseRepresentations(words: string[]): number {
const codes = [class="syntax-string">".-", class="syntax-string">"-...", class="syntax-string">"-.-.", class="syntax-string">"-..", class="syntax-string">".", class="syntax-string">"..-.", class="syntax-string">"--.", class="syntax-string">"....", class="syntax-string">"..", class="syntax-string">".---", class="syntax-string">"-.-", class="syntax-string">".-..", class="syntax-string">"--", class="syntax-string">"-.", class="syntax-string">"---", class="syntax-string">".--.", class="syntax-string">"--.-", class="syntax-string">".-.", class="syntax-string">"...", class="syntax-string">"-", class="syntax-string">"..-", class="syntax-string">"...-", class="syntax-string">".--", class="syntax-string">"-..-", class="syntax-string">"-.--", class="syntax-string">"--.."];
return new Set(words.map((word) => [...word].map((letter) => codes[letter.charCodeAt(class="syntax-number">0) - class="syntax-number">97]).join(class="syntax-string">""))).size;
}