您的位置:首页 > 其它

求一个字符串中的最大回文子串

2016-02-28 17:09 127 查看
给定一个字符串,寻找它的一个最大子串,该子串是回文。
例如:给定用例字符串”gabcdcbaef”,那么最大回文字串是”abcdcba”。
函数声明为void huiwen(char input[], int len, char output[])。
代码:
#include <iostream>
using namespace std;
void huiwen(char input[], int len, char output[])
{
int i, j, k, low, high, num, flag = 0;
for (i = 0; i < len&&flag == 0; i++)
{
for (j = len - 1; j>0 && flag == 0; j--)
{
if (input[i] == input[j])
{
num = (j - i + 1) / 2;
high = j;
low = i;
while (num > 0)
{
i++;
j--;
if (input[i] == input[j])
num--;
else
break;
if (num == 0)
{
int length = high - low + 1;
for (k = 0; k <length; k++)
{
output[k] = input[low++];
}
flag = 1;
}
}
}
}
}
}

int main()
{
char str[] = "gabcdcbaef";
char out[15] = { '0' };
huiwen(str, 10, out);
cout << out << endl;
cin.get();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: