最长回文子串

<script>
    /**
     * @param {string} s
     * @return {string}
     */
    const longestPalindrome = function (s) {
        if (s.length < 2) {
            return s
        }
        let start = 0, maxLen = 1;
        function help(left, right) {
            // 判断越界情况
            while (left >= 0 && right <= s.length && s[left] == s[right]) {
                if (right - left + 1 > maxLen) {
                    maxLen = right - left + 1
                    start = left
                }
                left--
                right++
            }
        }
        for (let i = 0; i < s.length; i++) {
            // 有中心点的情况 例:cabaa
            help(i - 1, i + 1)
            // 无中心点的情况 例:abba
            help(i, i + 1)
        }
        return s.substring(start, start + maxLen)
    };
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容