其实这个用KMP算法中Next[]数组可以求出,只要求出Next[]数组,然后根据Next()函数中每一位的值的大小可的出那些是重复的,如:“abcab" , 其Next[]中的值为{0 ,0 ,0 ,1,2},Next[3]=1,则说明字符串中第3+1个字符是重复的(a是重复的),而且从1~Next[3]之间的字符也是重复的(这里的1是字符串的第一位);在看Next[4] = 2,则说明字符串中第4+1个字符是重复的(b是重复的),从1~Next[4]之间的字符也是重复的(也就是ab是重复的);最后遍历完Next数组就可的出 a , b , ab 是重复字符子串。KMP算法中Next[]数组的求法就是根据到当前位置长度的字符串中前后重复的个数来确定值得嘛!
点赞 9

相关推荐

牛客网
牛客企业服务