최고로 긴 팰린드롬을 구하는 문제
/**
* @param {string} s
* @return {string}
*/
var longestPalindrome = function (s) {
let maxLenStr = ''
for (let i = 0; i < s.length; i++) {
if (maxLenStr.length > s.length - i) break
let j = s.lastIndexOf(s[i])
let temp = s.substring(i, j + 1)
while (i < j) {
if (maxLenStr.length < temp.length && isPalindromic(temp)) {
maxLenStr = temp
break
}
j = s.lastIndexOf(s[i], j - 1)
temp = s.substring(i, j + 1)
}
}
return maxLenStr || s[0]
}
const isPalindromic = str => {
let [start, end] = [0, str.length - 1]
while (start < end) {
if (str[start++] !== str[end--]) return false
}
return true
}