我正在网上进行代码挑战,寻找通过Levenshtein距离相关的单词“社交网络”。我的Levenshtein函数是正确的。我递归地添加到一个全局集,我正在使用元组映射到布尔值来缓存是否任何一对单词的Levenshtein距离为1.代码应该在 5秒内终止。我不确定这是怎么接近可能的。我确信有一些 aha 洞察力 这可能。任何人都可以直接看到它吗?
问题陈述: 如果他们的Levenshtein距离为1,那么两个单词就是朋友。也就是说,你可以在单词X中添加,删除或替换一个字母来创建单词Y.一个单词的社交网络由其所有朋友组成,加上他们所有的朋友们,以及他们所有朋友的朋友,等等。编写一个程序,告诉我们“hello”这个词的社交网络有多大,使用这个单词列表
我的伪代码:
get_network(friend)
if friend not in network
add friend to network
friends = []
check friend against all words in network
consult cache or calculate lev distance
cache if necessary, append to friends if necessary
for all friends
get_network(friend)
重新解释这个问题:“什么是能够提高效率的天文数字的基本见解?”