【发布时间】:2015-11-30 04:49:48
【问题描述】:
我正在处理MIME 消息生成代码,我想为任何给定的输入生成尽可能小的boundaries,即使在流模式下长度未知。
现在我得到了基于随机生成器的足够好的解决方案。基本上我会生成 32 个 Base64 符号的随机字符串,并尝试在其中找到不是 MIME 消息正文的子字符串的最短子字符串。
这不是完美的解决方案,因为:
边界并不总是最短的。举个非常简单的例子:对于纯 alpha 文本,边界可能只有一位,但生成的边界材料可能只包含 alpha。
每次运行应用程序时,我都需要随机生成器和唯一的种子。理想情况下,最好有确定性算法。
这就是我想知道的。是否可以保持流式算法的属性,在固定数量的内存上工作,具有确定性并生成理想的最短边界?或者我们只能通过权衡来实现一些属性?
【问题讨论】:
-
我觉得suffix automaton会对你有所帮助
-
为什么要关心边界字符串的长度?一个相当长的唯一字符串也更有可能与其他不太注意确保它们具有唯一边界字符串的工具一起正常工作。
-
谢谢@tripleee,这真的很有趣。
-
有一个类似的问题here。
标签: string algorithm language-agnostic mime boundary