错误:
1. 将数组模拟成string的时候,应在左后一个元素后面加一个endpos元素,模拟字符串的'\0'
2. KMP匹配的时候,状态应从 state = 0开始,而不是state = -1
3. MP 算法在构建fail数组的时候,f[i+1] = j+1, 而KMP在构建fail数组的时候f[i+1] = str[i+1] == str[j+1] ? f[j+1] : j+1; 意思为,如果第i+位字符和第j+1位相同,那么应该继续失配,和路经压缩类似。
错误:
1. 将数组模拟成string的时候,应在左后一个元素后面加一个endpos元素,模拟字符串的'\0'
2. KMP匹配的时候,状态应从 state = 0开始,而不是state = -1
3. MP 算法在构建fail数组的时候,f[i+1] = j+1, 而KMP在构建fail数组的时候f[i+1] = str[i+1] == str[j+1] ? f[j+1] : j+1; 意思为,如果第i+位字符和第j+1位相同,那么应该继续失配,和路经压缩类似。
转载于:https://www.cnblogs.com/skyette/p/7554007.html