题目描述:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"输出: "bb"
算法实现:
JavaScript
/*** @param {string} s* @return {string}*/var longestPalindrome = function(s) {var maxString = ""var maxLen = 0for(var i = 0; i < s.length; i++ ) {var len = 0for(var j = s.length - 1; j >= i; j-- ) {var flag = 1var a = ivar b = jfor( ; a <= b; a++, b-- ) {if(s[a] !== s[b]) {flag = 0break}}if(flag) {len = j - i + 1maxLen = maxLen > len ? maxLen : lenmaxString = maxLen > len ? maxString : s.substring(i, j+1)break}}}return maxString};
思路:
遍历字符串找出该字符串的开头和结尾并记录,之后开头的++,尾部的—,确定该字符串为回文字符串。
总结:
学会了字符串的substring()方法,进一步熟练运用循环的用法,对于这道题,还有许多种更加合理简便的解法,我使用的是最简单的暴力解法,希望在进一步加强技能后减少代码的时间复杂度。
