我有一个C ++任务,我不知道如何解决这个问题。 所以你有一个startString和一个ENDSTRING。重点是使用给定的操作集将startString转换为ENDSTRING:
并且您使用的操作应该尽可能低
所以我搜索谷歌,看看这是字符串重建问题。 这是编辑距离,特别是Levenshtein距离算法。
但Levenshtein算法并没有为您提供所做的步骤 - 它只给出了步数。我必须编写一个算法,以尽可能少的操作将givenString重建为ENDSTRING,并编写一个文件来描述到目前为止所采取的步骤。
你能否指导我使用哪种算法,因为Levenshtein只给你一些步骤,但我需要他们的数字和一个包含实际步骤的列表。
由于
答案 0 :(得分:0)
基本上,你必须稍微修改Levishtein算法。由于它是动态编程的一个示例,因此动态程序状态空间的一个特定状态的计算对应于替代的特定选择。据我了解,您有两种选择:
1。)使用一些辅助数据来执行每个状态的存储选择 值对应;
2。)不使用辅助数据结构,但只要评估状态空间,就可以使用回溯来查看哪些选择是可能的。
选项2.)可能会导致代码减少,但选项1。)可能更容易理解。