📅  最后修改于: 2023-12-03 14:59:10.954000             🧑  作者: Mango
ACPC是指ACM/ICPC(国际大学生程序设计竞赛)的比赛平台,是一种流行的算法竞赛训练和评测系统。
下面是一段 ACPC 的示例代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
char str[N];
int len[N], mx, idx;
int main() {
while (~scanf("%s", str+1)) {
int n = strlen(str+1);
if (n == 1 && str[1] == '#') break;
memset(len, 0, sizeof(len));
len[0] = -1;
mx = idx = 0;
for (int i = 1; i <= n; i++) {
if (str[i] == 'a') {
len[i] = 1;
} else {
len[i] = len[i-1] - 1;
}
while (len[i] <= 0 && i + len[i] <= n) {
if (str[i-len[i]-1] == 'a') {
len[i] += len[i-len[i]-1] + 2;
} else {
len[i] += len[i-len[i]-1] - 2;
}
}
if (len[i] > mx) {
mx = len[i];
idx = i;
}
}
printf("%d\n", (idx-mx+1)*2-1);
}
return 0;
}
以上是示例代码,用于处理字符串中最长的回文子序列,返回其长度。