蒟蒻代码在Dev C++中不能输出,为何在洛谷AC了? 代码:
#include<bits/stdc++.h>
using namespace std;
char st[20005],s[20005],c;
int pos[20005],len,maxx,be,ed;
int main () {
while ((c=getchar())!=EOF) {
st[len++]=c;
}
//预处理
int j = 0;
for (int i = 0; i < len; i++)
if (isalpha(st[i])) {
s[j] = tolower(st[i]);
pos[j++] = i;
}
//枚举中点
for(int i=0;i<j;i++) {
//串长为奇,向两边扩展k个字符
for(int k=0;i-k>=0&&i+k<j;k++) {
if(s[i-k]!=s[i+k]) break;//不相等一定不是回文
if(2*k+1>maxx) {
maxx=2*k+1;
be=pos[i - k];
ed=pos[i + k];
}
}
//串长为偶
for(int k=0;i-k>=0&&i+k+1<j;k++) {
if(s[i-k]!=s[i+k+1]) break;//不相等一定不是回文
if(2*k+2>maxx) {
maxx=2*k+2;//同时向两边增加k个数,再加上自己
be=pos[i-k];
ed=pos[i+k+1];
}
}
}
cout<<maxx<<endl;
for (int i=be;i<=ed;i++) cout<<st[i];
return 0;
}