基于字典的压缩算法的子串的最佳选择

时间:2015-02-20 00:52:33

标签: algorithm dictionary optimization compression

我有一个需要通过字典压缩算法压缩的字符串。如果在字典中找到子字符串,则使用成本2对其进行编码。如果未找到匹配项,则成本将是子字符串的大小。 给定一个固定字典和一个字符串,我如何选择字典中最好的子字符串,从而产生最低成本?

例如,考虑字符串ABBBBBCD和以下字典:

  • 条目1 - ABBB
  • 条目2 - BBCD
  • 条目3 - BBBBB
  • 第4条 - ABBBB
  • 条目5 - CD

最佳解决方案是选择ABBB和BBCD,结果成本为2 + 2 = 4。

如果我选择A,BBBBB,C和D,成本将是1 + 2 + 1 + 1 = 5,这比第一个更差。

然而,如果我选择ABBBB,B,CD,费用将是2 + 1 + 2 = 5.

解释之后,我的问题是:是否有一种已知的算法可以解决这个问题?或者,是否有一些已知的算法可以修改,以便我可以不使用强力方法解决问题?

请问我是否有不明确的事情。

1 个答案:

答案 0 :(得分:0)

您可以将其制定并解决为最短路径问题。

创建一个每个索引作为顶点的图形。现在添加从i到j的有向边(i

现在找到从索引1到n的最短路径。 (见:http://www.geeksforgeeks.org/shortest-path-for-directed-acyclic-graphs/