String Knuth和x2013之间的差异;莫里斯&x2013;Pratt(KMP)和后缀树使用Ukkonen';时间复杂度的s算法。

String Knuth和x2013之间的差异;莫里斯&x2013;Pratt(KMP)和后缀树使用Ukkonen';时间复杂度的s算法。,string,algorithm,time-complexity,suffix-array,knuth-morris-pratt,String,Algorithm,Time Complexity,Suffix Array,Knuth Morris Pratt,是否可以使用Ukkonen算法通过KMP和后缀树查找最长公共子串、最长回文子串、最长重复子串、搜索所有模式和子串检查?如果是,那么由于两种算法都具有线性时间复杂度,我应该使用哪一种算法?为了找到最长的公共子串,我将使用具有线性复杂度的Kadane算法。对于最长的回文子串,可以选择同样具有线性复杂度的Manacher算法。对于重复的字符串和搜索所有模式,是的,可以在KMP和Boyer Moore之间进行选择。 至于哪一个,Boyer Moore的匹配模式的最后一个字符,而不是第一个字符,假设如果最

是否可以使用Ukkonen算法通过KMP和后缀树查找最长公共子串、最长回文子串、最长重复子串、搜索所有模式和子串检查?如果是,那么由于两种算法都具有线性时间复杂度,我应该使用哪一种算法?

为了找到最长的公共子串,我将使用具有线性复杂度的Kadane算法。对于最长的回文子串,可以选择同样具有线性复杂度的Manacher算法。对于重复的字符串和搜索所有模式,是的,可以在KMP和Boyer Moore之间进行选择。 至于哪一个,Boyer Moore的匹配模式的最后一个字符,而不是第一个字符,假设如果最后没有匹配,就不需要尝试在开始匹配。KMP搜索主文本字符串S中出现的单词W,方法是在出现不匹配时进行观察,从而绕过先前匹配字符的重新检查。
这使得KMP在像ACTGT这样的小集合中得到了更好的优化。

这是一个家庭作业问题吗?到目前为止你做了什么研究?不,这不是一个家庭作业问题。我对它做了一些研究。