week19
+ 本周只有四道题(?187 - 重复的DNA序列
int n = s.size(), m = p.size();
s = ' ' + s, p = ' ' + p;
vector<int> ne(m + 2);
// 1. 统计ne
for(int i = 2, j = 0; i <= m; i++)
{
while(j && p[i] != p[j + 1]) j = ne[j];
if(p[i] == p[j + 1]) j++;
ne[i] = j;
}
// 2. KMP匹配
for(int i = 1, j = 0; i <= n; i++)
{
while(j && s[i] != s[j + 1]) j = ne[j];
if(s[i] == p[j + 1]) j++;
if(j == m)
{
// 匹配成功的逻辑
}
}188 - 买卖股票的最佳时期IV

189 - 旋转数组
190 - 颠倒二进制位
Last updated