首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[KMP-NEXT数组本质]POJ 2752 Seek the Name, Seek the Fame

2012-06-24 
[KMP-NEXT数组性质]POJ 2752 Seek the Name, Seek the Fame传送门:http://poj.org/problem?id2752题目描

[KMP-NEXT数组性质]POJ 2752 Seek the Name, Seek the Fame

传送门:http://poj.org/problem?id=2752

题目描述:要求求出字符串S所有满足如下条件的子串长度(1.子串T为S的前缀 2.子串T为S的后缀)。

解题思路:利用KMP的NEXT数组的特性,Next[pos]的含义是在pos处失配时pos应该指向的下一个位置,那么0-(Next[pos]-1)构成的字符串和(pos-Next[pos])-(pos-1)构成的字符串是相同么,那么即0-(Next[pos]-1)构成的字符串是,0-pos-1构成的字符串的前缀后缀子串,这样,考虑在主串S后面增加一个字符,构成新字符串P,那么求出P最后一个位置的Next[]值,那么就可以按照上述分析来求出前缀后缀子串(PS:要把pos不停的滑动,直到pos=0,因为空串不算是前缀后缀子串)


代码:



热点排行