字符串
2025年5月18日小于 1 分钟
字符串
反转字符串
public void reverseString(char[] s) {
int l = 0;
int r = s.length - 1;
while(l < r){
char temp = s[l];
s[l] = s[r];
s[r] = temp;
l++;
r--;
}
}
反转字符串II
- 每隔2k个字符,反转2k个字符
- 如果剩余字符小于2k,但大于或等于k个,则反转前k个字符
KMP
- 前缀表(next数组)是用来记录字符串前缀和后缀的最长公共部分
- 前缀表的目的是:当字符串匹配失败时,知道从哪里开始重新匹配
- 前缀定义:字符串的子串中,从开始到某个位置为止(不包含该位置),称为前缀
- 后缀定义:字符串的子串中,从某个位置开始到结束,称为后缀
- 最长相等前后缀:字符串的前缀和后缀的最长公共部分,也就是前缀表
- 如果不匹配了,跳到下标为前缀表的值的位置继续匹配
- 举例
字符串:aabaaf
前缀表:0 1 0 1 2 0
跳到下标为2的位置继续匹配b