Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String KMP失效函数的应用_String_Algorithm - Fatal编程技术网

String KMP失效函数的应用

String KMP失效函数的应用,string,algorithm,String,Algorithm,许多关于KMP的文章提到KMP中的失败函数本身有大量的应用 其中一个应用程序是查找最小的字符串,当连接k次时,该字符串将给出原始字符串(句点) 但是我找不到其他的。KMP失败函数还涉及哪些其他问题?KMP计算字符串所有前缀的边界,这本身就是字符串算法中的一个关键概念。(计算整个单词本身的边界非常重要,KMP(失败函数)是实现这一点的标准!) s的边框就是s的前缀和后缀的任意单词 正如您正确地注意到的,计算边界能力的一个突出应用是计算最小字符串w的可能性,对于某些自然的k w^k=s,对于给定的字

许多关于KMP的文章提到KMP中的失败函数本身有大量的应用

其中一个应用程序是查找最小的字符串,当连接k次时,该字符串将给出原始字符串(句点)


但是我找不到其他的。KMP失败函数还涉及哪些其他问题?

KMP计算字符串所有前缀的边界,这本身就是字符串算法中的一个关键概念。(计算整个单词本身的边界非常重要,KMP(失败函数)是实现这一点的标准!)

s的边框就是s的前缀和后缀的任意单词

正如您正确地注意到的,计算边界能力的一个突出应用是计算最小字符串w的可能性,对于某些自然的k w^k=s,对于给定的字符串s。这被称为s的基本根

这是因为字符串的边界和周期之间具有二元性。字符串s的句点是任何长度不超过s的字符串,因此s是字符串ww的前缀。。。例如,abc是一个abcabcab的时段。事实证明,一个单词的边界和句点之间有1:1的对应关系;在上面的示例中,请注意,abcababcabcab的边界。通常,只要w是s的一个周期,那么在从其开始(w^-1s)移除w之后从s保留的字符串就是s的边界。类似地,如果w是s的边界,那么当您删除后缀w时,s中保留的单词是s的一个句点

句点是分析字符串属性的重要工具。例如,它们用于在字符串中查找重复(运行)的算法中;有关概述,请参阅