莫尔斯电码是最便宜和最流行的消息通信方式。在摩尔斯电码中,字母表中的每个字母都由一系列点和破折号表示。传统上,点由一个短音符传输,破折号由一个较长的音符传输,不同字母之间有停顿。英文字母的每个字母的摩尔斯电码表示如下
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 将键作为点或线,并将值作为字母。但是现在我无法考虑如何检查形成的每个不同的单词。也许递归或动态编程可以做到这一点,但请给我算法,以便我可以开始编码。
摩尔斯电码在字母之间使用停顿,在单词之间使用更长的停顿。这就是你将它们分开的方式;你不能只从点和破折号来判断。