01 字符串理论基础
1、什么是字符串
字符串是若干个字符组成的有限序列,也可以理解为一个字符数组。
2、双指针法在字符串中的应用
双指针法在数组,链表和字符串中很常用。
3、反转系列
当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。
4、KMP
KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。
KMP的精髓所在就是前缀表,前缀表:起始位置到下标i之前(包括i)的子串中,有多大长度的相同前缀后缀。
那么使用KMP可以解决两类经典问题:
- 匹配问题;
- 重复子串问题;
前缀:指不包含最后一个字符的所有以第一个字符开头的连续子串。
后缀:指不包含第一个字符的所有以最后一个字符结尾的连续子串。