You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

40 lines
734 B

/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function(s) {
if (s === null || s.length < 1){
return "";
}
if (s.length === 1){
return s;
}
let start = 0;
let end = 0;
for (let i = 0; i < s.length; i++){
let len1 = expandAroundCenter(s, i, i);
let len2 = expandAroundCenter(s, i, i + 1);
let len = Math.max(len1, len2);
if (len > end - start) {
start = Math.round(i - (len - 1) / 2);
end = i + len / 2;
}
}
return s.substring(start, end+1)
};
function expandAroundCenter(s, left, right) {
let L = left;
let R = right;
while (L >= 0 && R < s.length && s.charAt(L) === s.charAt(R)){
L--;
R++;
}
return R - L - 1;
}