66pts RE最后三个点
查看原帖
66pts RE最后三个点
1420058
HaloisAWA楼主2024/11/8 00:50
#include<bits/stdc++.h>
using namespace std;
string s;
int n,Next[10010];
void getNext(string p) {
	Next[0] = Next[1] = 0;
	for (int i = 1;i < p.size();i ++) {
		int j = Next[i];
		while (j && p[i] != p[j])
			j = Next[j];
		if (p[i] == p[j]) Next[i + 1] = j + 1;
		else Next[i + 1] = 0;
	}
	return;
}
int main() {
	scanf("%d",&n);
	getline(cin,s);
	getline(cin,s);
	getNext(s);
	printf("%d\n",n - Next[n]);
	return 0;
}

2024/11/8 00:50
加载中...