1: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
思路:枚举出所有的类型的子串,然后判断是否是回文子串然后找出最长的长度/算法所需要时间太长
var s = "abcddcba" var longestPalindrome = function(s) { if(s===""||s.length===1){ //一个长度直接返回,空串也直接返回 return s; } var len =0,s1 = [0,0]; for(var i=0;i<s.length; i++) { for(var j=i+1; j<s.length; j++) { //是否是回文串 var str = s.substring(i,j+1) if(check(str)){ //判断最长 if(j-i+1>len){ len = j-i+1; s1 = [i,j]; } } } }; return s.substring(s1[0],s1[1]+1); } function check (s) { //判断回文 for(var i=0;i<Math.floor(s.length/2);i++) { if(s[i] !== s[s.length-i-1]){ return false; } } return true; } console.log(longestPalindrome(s))