这个题是想要找到最长回文字串,我刚开始想的是:
以每一个字符为中心,然后向两边扩展寻找,应该分为奇数和偶数为中心两种情况~
/** * @param {string} s * @return {string} */ var longestPalindrome = function(s) { var res=""; var len=s.length; var j,k; for(var i=0;i<len;i++){ var cur=""; j = i-1; k = i+1; cur += s[i]; while(k <len && j >=0){ if(s[j] == s[k]) { var temp = s[j]; temp += cur; cur = temp + s[j]; } else { break; } j--; k++; } if(cur.length >= res.length){ res = cur; } } for(var i=0;i<len;i++){ cur=""; j = i; k = i+1; while(k <len && j >=0){ if(s[j] == s[k]) { var temp =s[j]; temp += cur; temp += s[j]; cur = temp; } else { break; } j--; k++; } console.log(cur,cur.length); if(cur.length >= res.length){ res = cur; } } return res; };
代码应该没问题吧,但是提交上去超时了,因为后来它用的测试数据非常大啊,后来上网看了看别人的,就想着用动态规划试试看。
(然后,待续(笑))