请用C语言写程序:输入一串字符串,求其最长的回文子串的长度 输入提示: "Please input string:\n" 输入格式: "%s" 输出格式: "%5d" 程序运行结果实例1: Please input string: ↙ babad 3 程序运行结果实例2: Please input string: ↙ cbbd 2
时间: 2024-02-18 13:06:28 浏览: 65
好的,以下是您需要的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int longest_palindromic_substring(char *s) {
int n = strlen(s);
int dp[n][n];
int max_len = 1;
for (int i = 0; i < n; i++) {
dp[i][i] = 1;
}
for (int j = 1; j < n; j++) {
for (int i = 0; i < j; i++) {
if (s[i] == s[j]) {
if (j - i < 3) {
dp[i][j] = 1;
} else {
dp[i][j] = dp[i + 1][j - 1];
}
} else {
dp[i][j] = 0;
}
if (dp[i][j]) {
max_len = (j - i + 1) > max_len ? (j - i + 1) : max_len;
}
}
}
return max_len;
}
int main() {
char s[100];
printf("Please input string:\n");
scanf("%s", s);
int length = longest_palindromic_substring(s);
printf("%5d\n", length);
return 0;
}
```
您可以直接将以上代码复制到 C 语言环境中进行编译运行。希望能够帮助您!
阅读全文