最长回文子串
Posted onlyandonly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长回文子串相关的知识,希望对你有一定的参考价值。
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
示例 1:
输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。
示例 2:
输入: "cbbd" 输出: "bb"
这条题的思路主要是从一个或两个字符开始往两边遍历,直到遍历出最长的回文字符串为止。
问题就出来这个从一个字符还是两个字符开始了。。开始弄了好几个条件,结果递归算一下发现靠控制条件要控到十万八千里远。。。
后来我的办法就是,先从一个字符开始遍历,完了之后看一下能不能从两个字符开始,能就再做一遍遍历。。。
还有一点要注意的是,realloc之前一定要先赋值,不然就干瞪眼吧。。
char* longestPalindrome(char* s) { int len,maxlen=0; char *l,*r,*head=s; int i,j; char *rtn=0; while(*s) { len=-1; l=s; r=s; for(j=0;j<2;j++) { do{ if(*l!=*r) break; else len+=2; }while(l--!=head&&*r++!=‘