- 6. 最长回文子串
【问题描述】给定一个字符串s,找出s里第一次出现的最长的回文子串。
【样例输入1】babad
【样例输出1】bab
【样例输入2】cbbd
【样例输出2】bb
#include <iostream>
#include <cstring>
using namespace std;
struct ma
{
char b[100];
int len = 0;
} a, temp;
bool ju(char s[], int n)
{
int i;
for (i = 0; i <= n / 2; i++)
if (s[i] != s[n - i])
return false;
return true;
}
int main()
{
int size, c = 0;
char str[1000];
int i = 0;
cin.getline(str, 1000);
size = strlen(str);
int start, t, j;
for (i = 2; i <= size; i++)
{
for (j = 0, t = i; t <= size; j++, t++)
{
int w = j;
for (int q = 0; q < i; q++)
{
temp.b[q] = str[w];
w++;
}
temp.len = i;
if (ju(temp.b, i - 1) && temp.len > a.len)
{
for (a.len = 0; a.len < temp.len; a.len++)
a.b[a.len] = temp.b[a.len];
}
}
}
for (i = 0; i < a.len; i++)
cout << a.b[i];
}