YoseZang 2022-11-11 14:36 采纳率: 87.5%
浏览 239
已结题

算法问题,单词接龙问题加强版,请进

有一个字典,包括6万左右个单词,这些单词按照字典序排列。给定两个单词,这两个单词属于这个字典,求出这两个单词的最短编辑距离(与编辑距离有区别)及路径,要求如下:

  1. 每次变换的单词必须在字典中出现。
  2. 共有三种变换规则:
    1)任意位置添加/删除一个字符,编辑距离为3,例:pro->poro
    2)翻转相邻位置的2个字符,编辑距离为4,例:trota->torta
    3)将单词某一位置的1个字符修改为另一个字符,编辑距离为5 ,例:torta->torto
    最短编辑距离,及其路径,要求尽可能速度快一些

目前的思路是针对每个单词求出其相关的只需1次操作的单词集合,然后使用深度递进的方法,每次搜索的深度多一层(先搜1层看看是否能达到结果,再搜2层,再搜3层的,以此保证时间复杂度),从出发单词搜索到结束单词

不知道这个问题的有没有更好的算法,文字描述或伪代码即可,谢谢

  • 写回答

11条回答 默认 最新

  • 生产队的小刘 Python领域新星创作者 2022-11-11 20:04
    关注

    我这儿有一个开源的项目您看一下,源代码和可运行程序都有:https://github.com/yanlin2579/Sorting-English-article-in-dictionary-order

    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 修改了问题 11月11日
  • 赞助了问题酬金50元 11月11日
  • 赞助了问题酬金20元 11月11日
  • 展开全部

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作