我被困在这个采访问题上: 给定一个N字节的文件。找到文件中不存在的最小长度的子字符串。
有什么想法吗? 感谢。
答案 0 :(得分:3)
后缀树宝贝!
创建后缀树。找到最浅的空节点。
答案 1 :(得分:2)
你可以建立一个后缀数组,然后对于k = 1,2,3,...,搜索长度为k的每个可能的子串。
由于后缀数组已排序,因此您可以轻松找到缺少的子字符串。例如,当k = 2时,您首先找到" aa",然后" ab"等等。
由于缺少最小子字符串的长度最多为O(log(n)),因此构建后缀数组为O(n),每次扫描为O(n),这总体为O(n log n)。