给定1个长度为n的字符串x,最长回文子串问题就是要找出X中长度最长的回文了串.例如,如果给定的字符串X=bbacababa,则子串bacab是X的一个最长的回文子串,它的长度是5.
算法设计:设计一个算法,找出给定字符串X的最长回文子串.
数据输入:由文件input.txt提供输入数据.文件的第1行中给出字符串X.
结果输出:将计算出的字符串X的最长回文子串输出到文件output.txt中.文件的第1行是最长回文子串的长度.文件的第2行是最长回文子串.
请编写一个函数int pattern_index(char substr[],char str[]),该函数执行含通配符“?”的字符串的查找时,该通配符可以与任一个字符匹配成功。当子串substr在str中匹配查找成功时,返回子串substr在str中的位置,否则返回值为0。要求使用 for循环实现。输出结果如下:
子串起始位置:5
注意:部分源程序已存在文件test20_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数pattern_index的花括号中填写若干语句。
文件test20_2.cpp的内容如下:
include<iostream.h>
int pattern_index(char substr[],char str[])
{
}
void main ()
{
char *substring,*string;
int same;
substring="???gram";
string="this program return index of substring";
same=pattern_index(substring, string);
if(same)
cout<<"子串起始位置: "<<same<<end1;
else
cout<<"匹配不成功" <<end1;
}
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!