作为一个爱好项目,我想用 C++ 和 Python(两者)实现摩尔斯电码编码器和解码器。我想知道我应该为此使用正确的数据结构。这个问题不仅与这个特定项目有关,而且一般来说,当必须进行预定义的文本替换时,最好和最快的方法是什么?
如果可能的话,我会避免重新发明任何数据结构(我认为是)。请注意,这纯粹是一种学习练习,我一直想知道最好的方法是什么。也许我可以将代码和相应的字符存储在字典中,然后遍历文本并进行替换。这是最好的方法还是我可以做得更好?
最佳答案
from collections import defaultdict
morsecode = [('a','._'), ('b','_...'), ('c','_._.')]
codedict = defaultdict(lambda:' ')
for k,v in morsecode:
codedict[k] = v
tomorse = lambda x: ' '.join([codedict[chr] for chr in x])
print tomorse('bab cab')
给予:
_... ._ _... _._. ._ _...
关于c++ - C++ 和 Python 中的预定义文本替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3718304/