来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-palindromic-substring 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解答
- 遍历到某个字符,找到下一个此字符的位置
- 截取这段字符,判断是否回文
- 重复此操作,直到遍历结束
/*** @param {string} s* @return {string}*/var isPalindrome = s => {let start = 0,end = s.length - 1;while (start < end) {if (start < end && s[start] !== s[end]) {return false;}++start;--end;}return true;}var longestPalindrome = function(s) {if (s.length <= 1) return s;let maxStr = '', sLen = s.length;for (let i = 0; i < sLen; i++) {const char = s[i];let offset = i + 1,nextCharIdx = -1;while (~(nextCharIdx = s.indexOf(char, offset))) {const chunk = s.slice(i, nextCharIdx + 1);if (isPalindrome(chunk)) {if (chunk.length > maxStr.length) {maxStr = chunk;}}offset = nextCharIdx + 1;}}if (maxStr.length > 1) {return maxStr;} else {return s[0];}};
