摩尔斯电码算法

-6 algorithm morse-code

莫尔斯电码是最便宜和最流行的消息通信方式。在摩尔斯电码中,字母表中的每个字母都由一系列点和破折号表示。传统上,点由一个短音符传输,破折号由一个较长的音符传输,不同字母之间有停顿。英文字母的每个字母的摩尔斯电码表示如下

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 --..
Run Code Online (Sandbox Code Playgroud)

例如,让消息是-..-----.并且它由三个字母组成,它可能表示 njg、dog、xmg 或 xon。

我想知道算法。据我所知,我们可以让 HashMap 将键作为点或线,并将值作为字母。但是现在我无法考虑如何检查形成的每个不同的单词。也许递归或动态编程可以做到这一点,但请给我算法,以便我可以开始编码。

use*_*ica 5

摩尔斯电码在字母之间使用停顿,在单词之间使用更长的停顿。这就是你将它们分开的方式;你不能只从点和破折号来判断。

  • @user2963445:这听起来像是那种无用但有教育意义的问题,只是作为家庭作业给出。我不会给你作业的答案。不过,我会给你以下提示:找出哪些字母可能是第一个字母,然后对于每个可能的第一个字母,找出如何将字符串的其余部分分解为字母。 (2认同)