我有一个需要通过字典压缩算法压缩的字符串。如果在字典中找到子字符串,则使用成本2对其进行编码。如果未找到匹配项,则成本将是子字符串的大小。 给定一个固定字典和一个字符串,我如何选择字典中最好的子字符串,从而产生最低成本?
例如,考虑字符串ABBBBBCD和以下字典:
最佳解决方案是选择ABBB和BBCD,结果成本为2 + 2 = 4。
如果我选择A,BBBBB,C和D,成本将是1 + 2 + 1 + 1 = 5,这比第一个更差。
然而,如果我选择ABBBB,B,CD,费用将是2 + 1 + 2 = 5.
解释之后,我的问题是:是否有一种已知的算法可以解决这个问题?或者,是否有一些已知的算法可以修改,以便我可以不使用强力方法解决问题?
请问我是否有不明确的事情。
答案 0 :(得分:0)
您可以将其制定并解决为最短路径问题。
创建一个每个索引作为顶点的图形。现在添加从i到j的有向边(i
现在找到从索引1到n的最短路径。 (见:http://www.geeksforgeeks.org/shortest-path-for-directed-acyclic-graphs/)