Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
20-liner: razor-sharp solution in Clear category for Count Morse by przemyslaw.daniel
MORSE = {
"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": "--..",
}
def count_morse(message: str, letters: str) -> int:
symbols = {MORSE[letter] for letter in letters}
result, stack = 0, [(message, symbols)]
while stack:
message, symbols = stack.pop()
result += not message
stack += [(message[len(symbol):], symbols - {symbol})
for symbol in filter(message.startswith, symbols)]
return result
May 5, 2023
Comments: