leetcode5. 最长回文子串
/** * @param {string} s * @return {string} */ var longestPalindrome = function(s) { let dp =[]; let res = {}; let len = s.length; for(let i=0;i<len;i++){ dp.push([]); dp[i][i]=true; res['l'] = i; res['r'] = i; } for(let i=0;i<len;i++){ if(len>1){ dp[i][i+1]=s[i]==s[i+1]?true:false; if(dp[i][i+1]){ res['l'] = i; res['r'] = i+1; } } } for(let size = 3;size<=len;size++){ for(let l=0;l<len;l++){ let r = l+size-1; if(r>=len){ break; } if(s[l]!=s[r]){ dp[l][r]=false; }else{ dp[l][r] = dp[l+1][r-1]&&(s[l]==s[r]); } if(dp[l][r]){ res['l'] = l; res['r'] = r; } } } return s.slice(res['l'],res['r']+1); };