C++ 回文制造机:给定字符串形成最短回文串

题目:给定一个字符串(不含空格,长度小于500),在字符串的前后适当补充若干字符串,使整个字符串形成回文串,那么最少需要补充多少字符,并输出形成的回文串

分别从左右两侧判断回文情况,左侧判断时,每次过滤掉最右侧的字符,如果某次循环判断为回文,则记录本次判断的字符串长度。左右都判断完成后,比较左右两侧哪个回文串更长。字符串长度减去回文串长度即为需要补充的最少字符。

#include 
using namespace std;

bool hw(char *s,int n)
{
	int i=0;
	int j=n-i-1;
	while(i>s;
	int len = strlen(s);
	int n = len;
	int maxlen = 0;
	int flag = 0;
	while(n)
	{
		if(hw(s,n))
		{
			maxlen = n;
			break;
		}
        n--;
	}
	n = len;
	while(n > maxlen)
	{
		if(hw(s+len-n,n))
		{
			maxlen = n;
			flag = 1;
			break;
		}
        n--;
	}
	if(n == 0)
		cout<

你可能感兴趣的:(问答整理,c++,开发语言)