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

来源:互联网 发布:2012年3d开奖数据 编辑:程序博客网 时间:2024/05/18 01:36

给定一个字符串,寻找它的一个最大子串,该子串是回文。

例如:给定用例字符串”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--;elsebreak;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;}

0 0