给出一个字符串,仅由小写字母组成。请找出是否仅删除其中的一个字母之后, 字符串变成回文串。
给出一个字符串,仅由小写字母组成。请找出是否仅删除其中的一个字母之后, 字符串变成回文串。
输入第一行是一个整数 T,表示有 T 组数据。 每组数据占一行,每行包含一个非空字符串,字符串长度不超过
 105 。
对于每组测试数据,输出一行包含一个整数 K ,表示删除字符串中第 K 个字 母后字符串变成回文串。若有多个这样的整数 K 存在,则输出其中最小的一个 整数。如果输入的字符串原本就是一个回文串,或者找不到这样的整数,则输出 "No
 Solution" (不包含引号)。
3
aaab
abab
abcba
4
1
No Solution
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 1e5+100;
char a[N];
bool judge(int x,int y)
{
    int l=0;
    while(x+l<=y-l)
    {
        if( a[x+l]==a[y-l] ) l++;
        else return false;
    }
    return true;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        bool flag=0;
        scanf("%s",a+1);
        int len=strlen(a+1);
        for(int i=1;i<=len;i++)
        {
            if( a[i]==a[len-i+1] ) continue;
            int j=i;
            while(a[j-1]==a[i]) j--;
            for(int k=j;k<=i;k++)
                if( judge(k+1,len-k+1) )
                {
                    printf("%d\n",k);
                    flag=1;
                    break;
                }
            if(flag) break;
            if( judge(i,len-i) )
            {
                printf("%d\n",len-i+1);
                flag=1;
                break;
            }
            break;
        }
        if(!flag) printf("No Solution\n");
    }
    return 0;
}binshenOJ 1215-I Wanna Be A Palindrome (YY)
原文:http://blog.csdn.net/kalilili/article/details/44523123