摩尔斯电码是最便宜和最流行的消息通信方式。在摩尔斯电码中,字母表中的每个字母都由一系列点和破折号表示。传统上,点通过短音符传输,破折号通过更长的音符传输,不同字母之间有停顿。英文字母的每个字母的摩尔斯电码表示如下
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 --..
例如,让消息是-..-----.
,它由三个字母组成,它可能表示 njg、dog、xmg 或 xon。
我想知道算法。据我所知,我们可以使 HashMap 将键作为点或线,并将值作为字母。但是现在我无法思考如何检查每个不同的单词形成。也许递归或动态编程可以做到这一点,但请给我算法,以便我可以开始编码。