Jus*_* L. 4 string algorithm heuristics path-finding
我相信你们都听说过"文字游戏",你试图通过一次改变一个字母来改变一个单词到另一个单词,并且只通过有效的英语单词.我正在尝试实现一个A*算法来解决它(只是为了充实我对A*的理解),其中一个需要的是最小距离启发式.
也就是说,这三个突变中的一个可以将任意字符串变成另一个字符串b的最小数量b:1)将一个字母改为另一个字母2)在任何字母之前或之后的某个地方添加一个字母3)删除任何字母
例子
aabca => abaca:
aabca
abca
abaca
= 2
abcdebf => bgabf:
abcdebf
bcdebf
bcdbf
bgdbf
bgabf
= 4
Run Code Online (Sandbox Code Playgroud)
我尝试了很多算法; 我似乎无法找到每次给出实际答案的人.事实上,有时我甚至不确定我的人类推理是否找到了最佳答案.
有没有人为此目的知道任何算法?或者也许可以帮我找到一个?
(只是为了澄清,我要求的算法可以将任意字符串转换为任何其他字符串,无视其英语有效性.)
两个字符串之间的Levenshtein距离定义为将一个字符串转换为另一个字符串所需的最小编辑数,允许的编辑操作是单个字符的插入,删除或替换.它以弗拉基米尔·莱文施泰因(Vladimir Levenshtein)的名字命名,他在1965年考虑过这个距离.
确定编辑序列的一种算法在此处在同一页面上.
| 归档时间: |
|
| 查看次数: |
3972 次 |
| 最近记录: |