本文最后更新于191 天前,其中的信息可能已经过时,如有错误请发送邮件到1729915388@qq.com
给你一个字符串 s
,找到 s
中最长的回文子串。
#include<string.h>
#include<stdio.h>
#define N 20
int main()
{
char S[N]="\0";
int dp[N][N];
gets(S);
int len = strlen(S), ans = 1;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < len; i++)
{
dp[i][i] = 1;
if (i < len - 1)
{
if (S[i] == S[i + 1])
{
dp[i][i + 1] = 1;
ans = 2;
}
}
}
for (int L = 3; L <= len; L++)
for (int i = 0; i + L - 1 < len; i++)
{
int j = i + L - 1;
if (S[i] == S[j] && dp[i + 1][j - 1] == 1)
{
dp[i][j] = 1;
ans = L;
}
}
printf("%d",ans);
return 0;
}