Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Count Morse by arun_maiti
D = {
"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:
res, queue = 0, [(message, letters)]
while queue:
m, l = queue.pop(0)
poss = [char for char in l if m.startswith(D[char])]
for char in poss:
m1 = m.removeprefix(D[char])
l1 = l.replace(char, "")
match bool(m1), bool(l1):
case False, False: res += 1
case True, True: queue.append((m1, l1))
return res
print("Example:")
print(count_morse("-------.", "omg"))
# These "asserts" are used for self-checking
assert count_morse("-------.", "omg") == 2
assert count_morse(".....-.-----", "morse") == 4
assert count_morse("-..----.......-..-.", "xtmisuf") == 4
print("The mission is done! Click 'Check Solution' to earn rewards!")
Dec. 5, 2025
Comments: