首页 > 编程知识 正文

c语言最长公共字符串,c语言回文是什么意思

时间:2023-05-03 09:19:40 阅读:32902 作者:4540

给字符串s,找出s中最长的回文子串。 (检查问题来源() ) )。

示例1 :

输入: s='babad '

输出:“bab”

解释:“aba”也是符合题意的回答。

回文的意思是比如:上海自来水来自海上

# define _ CRT _ secure _ no _ warnings # include stdio.h # include string.h # include stdlib.h//最长回文子串intjudgeged right----; }else {*in=0; 返回1; //如果不能配置回文,则直接返回1; } }返回时间; //如果循环结束后可以构成回文,则返回相应的长度(char * longest palindrome char * s ) ) /用于传递判断回文的函数的int left_1=0; int right_1=0; //用于存储数组的长度int right=0; //中继变量int temp=0; int temp_1=1; int temp_2=0; int temp_in=0; if(s==null ) {return 0; }while(s[right]!=' ' () /循环计算字符数组长度right; }for(intI=0; i right - 1; I () /双循环判断两个相等字符之间是否构成回文,最长的值for(intj=I1; j right; j () if ) s[I]==s[j]j-I1temp_in ) ) /如果找到相等的两个字符(//() ) (如果它可以构成回文) )其长度作为上一次语句是成功的长度哦//头加1right_1=j - 1; //尾减1temp_in=j - i 1; //保存回文长度temp=judgedrome(s,left_1,right_1,temp_in ); //将回文的长度按地址传递给函数,回文的情况下不改变值,不是回文的情况下将值设为0if(temptemp_1)//存储最大长度temp_1=temp; temp_2=i; //用于记录回文子串的开始位置,然后为新空格赋值}}}}char* ptr=(char* ) malloc(sizeof(char ) ) temp_1) ); //申请用于保存最长回文子串for的新空间(intI=0; i temp_1; I ) ) /赋值回文子串ptr[i]=s[temp_2]; temp_2; }ptr[temp_1]=' '; //末尾有''return ptr; //返回此回文子串(}int main ) () charstr ) )='abcbadgteq ); int sum=0; char* ptr=0; ptr=长脉冲串(str; int i=0; wile(ptr[I]!=' ' () /打印判断是否正确printf(%c )、ptr[i] ); I; (自由) ptr; //释放动态申请空间return 0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。