最长回文子串
1.题目描述
2.源码注释
var longestPalindrome = function(s) {
var res=s[0];
var p,q=null;
for(let i=0;i<s.length;i++){
if(s[i]&&(s[i]===s[i+1])){
p=i,q=i+1;
while(s[p]&&(s[p]===s[q])){
q-p+1>res.length ? res=s.slice(p,q+1) : res
p--,q++;
}
} if(s[i-1]&&(s[i-1]===s[i+1])){
p=i-1,q=i+1;
while(s[p]&&(s[p]===s[q])){
q-p+1>res.length ? res=s.slice(p,q+1) : res
p--,q++;
}
}
};
return res;
};
时间复杂度o(n**2),空间复杂度o(1)
3 思想
动态规划
每次进入到下一个字符的时候,都会往两边进行检查。是否对称
分两种情况,第一种是相邻对称。第二种是左右两边对称