Leetcode代码练习(四)
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。
例子:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Input: "cbbd"
Output: "bb"
1 var longestPalindrome = function(s) { 2 var arr = s.split(''); 3 var i, substr, substrAsume, str = ''; 4 var left = 0, right = 0; 5 var len = s.length; 6 var palindrome = function(i, arr, left, right) { 7 while (arr[i - left] === arr[i + right] && i - left >= 0 && i + right < len) { 8 left ++; 9 right ++; 10 } 11 return arr.slice(i - left + 1, i + right).join(''); 12 }; 13 14 if (len < 2) { 15 return s; 16 } 17 for (i = 0; i < len; i++) { 18 substr = palindrome(i ,arr, left, right); 19 substrAsume = palindrome(i, arr, left, right + 1); 20 str = substr.length > str.length ? substr : str; 21 str = substrAsume.length > str.length ? substrAsume : str; 22 } 23 return str; 24 };
该题我是看了leetcode的一个答案,然后在答案的基础上根据自己的理解,写出来的答案。
该题采用的是两边逼近的方法,试图寻找出最长的回文子串。