最长回文子串 Medium

算法 LeetCode
Zyao89 2020年4月20日星期一 23:16

难度

中等

# 题目

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

# 示例 1

输入: "babad"

输出: "bab"

注意: "aba" 也是一个有效答案。

# 示例 2

输入: "cbbd"

输出: "bb"

# 解答

以下解答为个人原创答案,非最优解。保证运行通过。

/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
    const size = s.length;
    if (size <= 1) return s;
    const arrs = s.split('');
    let result = '';
    for(let i = 0; i < size; i ++) {
        const temp = [];
        for(let j = i; j < size; j ++) {
            temp.push(arrs[j]);
            if (isPalindrome(temp)) {
                if (temp.length > result.length) {
                    result = temp.join('');
                }
            }
        }
    }
    return result;
};

function isPalindrome(str) {
    var len  = str.length
    var middle = parseInt(len/2)
    for(var i = 0;i<middle;i++){
        if(str[i]!=str[len-i-1]){
            return false
        }
    }
    return true
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

链接:https://leetcode-cn.com/problems/longest-palindromic-substring

作者: Zyao89; 转载请保留
版权声明: 自由转载-非商用-非衍生-保持署名
上次编辑时间: 2023年11月27日星期一 11:18