最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。
输入格式:
输入在一行中给出长度不超过1000的非空字符串。
输出格式:
在一行中输出最长对称子串的长度。
输入样例:Is PAT&TAP symmetric?输出样例:
11
做题:emmmmm,比较水的一题,思路很清晰也很暴力
#include <stdio.h>
int main()
{
char s[10001];
gets(s);
int i,max=0,m=1,n=0,numj=0,numo=0;
if(strlen(s)==1)
max=1;
else
{
for(i=0;i<strlen(s);i++)//字符串为奇数
{
m=i;n=i;
while(s[++m]==s[--n]&&n>=0&&m<strlen(s))
numj++;
if((numj*2+1)>max)
max=numj*2+1;
numj=0;
}
for(i=0;i<strlen(s);i++)//字符串为偶数
{
m=i;n=i+1;
while(s[m]==s[n]&&m>=0&&n<strlen(s))
{
numo++;
m--;
n++;
}
if((numo*2)>max)
max=numo*2;
numo=0;
}
}
printf("%d\n",max);
return 0;
}