String 文件中不存在的最小长度的子字符串

String 文件中不存在的最小长度的子字符串,string,algorithm,String,Algorithm,我被这个面试问题困住了: 给定一个N字节的文件。查找文件中不存在的最小长度的子字符串。 有什么想法吗? 谢谢。宝贝 创建后缀树。找到最浅的空节点。您可以构建一个后缀数组,然后对于k=1、2、3,…,搜索长度为k的每个可能的子字符串 由于后缀数组已排序,因此可以很容易地找到缺少的子字符串。例如,当k=2时,首先找到“aa”,然后找到“ab”,依此类推 由于缺少的最小子字符串的最大长度为O(log(n)),因此构建后缀数组的长度为O(n),每次扫描的长度为O(n),这是整个O(n log n)。您能

我被这个面试问题困住了: 给定一个N字节的文件。查找文件中不存在的最小长度的子字符串。

有什么想法吗? 谢谢。

宝贝


创建后缀树。找到最浅的空节点。

您可以构建一个后缀数组,然后对于k=1、2、3,…,搜索长度为k的每个可能的子字符串

由于后缀数组已排序,因此可以很容易地找到缺少的子字符串。例如,当k=2时,首先找到“aa”,然后找到“ab”,依此类推


由于缺少的最小子字符串的最大长度为O(log(n)),因此构建后缀数组的长度为O(n),每次扫描的长度为O(n),这是整个O(n log n)。

您能举个例子吗?是的,这比我的解决方案好。@Ukkonen:您能解释一下您的解决方案吗?