#include <stdio.h>
#include <string.h>
#define N 50
int strlen_s(char*s)
{
int i = 0;
char *p = s;
while(*p != '\n')
{
p++;
i++;
}
return i;
}
int main()
{
//char s[]="ab1234321ab";
char s[N];
int i;
int j;
int str_len;
int start = 0;;
int max_len = 0;
int temp1;
int temp2;
printf("Enter string(<=50):");
//scanf("%s",s);
fgets(s,50,stdin);
printf("Enter len of string:");
scanf("%d",&str_len);
//str_len = strlen_s(s);
//printf("strlen(s) = %d\n",str_len);
for(i = 0; i < str_len; i++)
{
for(j = i + 1; j < str_len; j++)
{
for(temp1=i,temp2=j;temp1<temp2;temp1++,temp2--)
{
if(s[temp1] != s[temp2])
{
break;
}
}
if(temp1>=temp2&&j-i+1>max_len)
{
max_len = j - i + 1;
start = i;
}
}
}
printf("start is s[%d]\nmax_len = %d\n",start,max_len);
return 0;
}
回文串是指这个字符串无论从左读还是从右读,所读的顺序是一样的;简而言之,回文串是左右对称的。现在,对于一个给定的母串 abcdedcb求最长回文子串的长度
最新推荐文章于 2022-07-21 09:00:00 发布