说实话,写这道题的时候内心的想法是这道题贼难 可是其实我忽略了一句话 就是这个保证了我们 那个串肯定在 也就是说去掉一个元素肯定会是回文串 那这个就很好证明了 期间我看了看我们学长的代码自己比葫芦也发个博客
`~~~~~ 反正也没人看 就当自己写了一个笔记吧~~~
#include<math.h>
#include<algorithm>
#include<stdio.h>
#include<iostream>
#include<set>
#include<map>
#include<string.h>
using namespace std;
char p[500050];
int main()
{
int len,l,r;
char ss;
scanf("%s",p);
len=strlen(p);
l=0,r=len-1;
while(l<r)
{
if(p[l]!=p[r])
break;
l++;
r--;
}
if(l==r)
{
ss=p[l];
for(; l>=0; l--)
{
if(p[l]!=ss)
break;
}
printf("%d\n",l+2);
}
else if(p[l+1]==p[r])
{
ss=p[l];
for(; l>=0; l--)
{
if(p[l]!=ss)
break;
}
printf("%d\n",l+2);
}
else
{
ss=p[r];
for(; r>=0; r--)
{
if(p[r]!=ss)
break;
}
printf("%d\n",r+2);
}
return 0;
}