解决问题:字符串匹配的问题。假设需要在str中找是否存在s字符串。
解题思路:首先定义一个next数组,这个数组就是记录s字符串中最长前后缀。前缀就是不包含最后一个字符的所有字符串,后缀就是不包含第一个字符的所有字符串。
代码编写:首先要初始化一个next数组,这个数组可以是所有最长前缀-1,也可以是直接记录所有最长前缀。本文就是直接使用最长前缀;其次是把所有不相同状态的next数组进行回退,本质就是双指针;然后是遇到相同的后面的指针加一,最后是记录所有的后面的那个指针。
解决问题:字符串匹配的问题。假设需要在str中找是否存在s字符串。
解题思路:首先定义一个next数组,这个数组就是记录s字符串中最长前后缀。前缀就是不包含最后一个字符的所有字符串,后缀就是不包含第一个字符的所有字符串。
代码编写:首先要初始化一个next数组,这个数组可以是所有最长前缀-1,也可以是直接记录所有最长前缀。本文就是直接使用最长前缀;其次是把所有不相同状态的next数组进行回退,本质就是双指针;然后是遇到相同的后面的指针加一,最后是记录所有的后面的那个指针。