有一个字典,包括6万左右个单词,这些单词按照字典序排列。给定两个单词,这两个单词属于这个字典,求出这两个单词的最短编辑距离(与编辑距离有区别)及路径,要求如下:
- 每次变换的单词必须在字典中出现。
- 共有三种变换规则:
1)任意位置添加/删除一个字符,编辑距离为3,例:pro->poro
2)翻转相邻位置的2个字符,编辑距离为4,例:trota->torta
3)将单词某一位置的1个字符修改为另一个字符,编辑距离为5 ,例:torta->torto
求最短编辑距离,及其路径,要求尽可能速度快一些
目前的思路是针对每个单词求出其相关的只需1次操作的单词集合,然后使用深度递进的方法,每次搜索的深度多一层(先搜1层看看是否能达到结果,再搜2层,再搜3层的,以此保证时间复杂度),从出发单词搜索到结束单词
不知道这个问题的有没有更好的算法,文字描述或伪代码即可,谢谢