kmp匹配
暴力拆分,然后匹配就行
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
char s[maxn], s1[maxn];
int pos[maxn], flag;
stack<int> st;
void pre(int len)
{
int j = 0; pos[1] = 0;
for(int i = 1; i < len; i++){
while(j && s[j+1] != s[i+1]) j = pos[j];
if(s[j+1] == s[i+1]) j++;
pos[i+1] = j;
}
}
void kmp(int len,int m)
{
int j = 0;
for(int i = 0; i < len; i++){
while(j && s1[i+1] != s[j+1]) j = pos[j];
if(s1[i+1] == s[j+1]) j++;
if(j == m){ flag = 1; return ; }
}
}
int main()
{
int n, len, m = 0, x, p;
scanf("%d%s",&n,s+1);
len = strlen(s+1);
for(int i = 1; i <= len; i++){
if(s[i] >&#