题目链接:点击打开链接
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
using namespace std;
const int maxn=1e3+10;
char s[maxn],sub[maxn];
int p[maxn],len;
int Max,pos,cunt,n;
void work(int k1,int k2)
{
int i,j,cost;
cost=0;
for(i=k1,j=k2;i>=0&&j<cunt;i--,j++)
{
if(sub[i]!=sub[j])cost++;
if(cost>n)break;
}
i++,j--;
if(i>j)return ;
int Maxlen=p[j]-p[i]+1;
//printf("k1=%d k2=%d i=%d j=%d %d\n",k1,k2,i,j,Maxlen);
if(Maxlen>Max)
{
Max=Maxlen;
pos=p[i];
}
}
int main()
{
int i,j,k;
int ans=0;
while(~scanf("%d\n",&n))
{
Max=0,pos=0;
gets(s);
len=strlen(s);
// printf("len=%d\n",len);
cunt=0;
for(i=0;i<len;i++)
{
if(isalpha(s[i]))
{
sub[cunt]=tolower(s[i]);
p[cunt++]=i;
}
}
sub[cunt]='\0';
// puts(sub);
// printf("cunt=%d\n",cunt);
for(i=0;i<cunt;i++)
{
work(i,i);
work(i,i+1);
}
printf("Case %d: %d %d\n",++ans,Max,pos+1);
}
}