5.最长回文子串

// 找出最长的回文子串
let s = 'ac'

const judge = (s) => {
    let arr = Array.from(s)
    let mid = 0
    if (arr.length % 2 === 0 ) {
        mid = arr.length / 2 -1
    } else {
        mid = Math.floor(arr.length / 2)
    }
    for (let i = 0; i <= mid; i++) {
        if (arr[i] !== arr[arr.length - 1 - i]) return false
    }
    return true
}

const f = (s) => {
    let res = ''
    for (let i = 0; i < s.length; i++) {
        for (let j = i;j < s.length;j++) {
            if (judge(s.slice(i, j+1)) && res.length < s.slice(i, j+1).length) {
                res = s.slice(i, j+1)
            }
        }
    }
    return res
}
console.log(f(s))// 找出最长的回文子串
let s = 'ac'

const judge = (s) => {
    let arr = Array.from(s)
    let mid = 0
    if (arr.length % 2 === 0 ) {
        mid = arr.length / 2 -1
    } else {
        mid = Math.floor(arr.length / 2)
    }
    for (let i = 0; i <= mid; i++) {
        if (arr[i] !== arr[arr.length - 1 - i]) return false
    }
    return true
}

const f = (s) => {
    let res = ''
    for (let i = 0; i < s.length; i++) {
        for (let j = i;j < s.length;j++) {
            if (judge(s.slice(i, j+1)) && res.length < s.slice(i, j+1).length) {
                res = s.slice(i, j+1)
            }
        }
    }
    return res
}
console.log(f(s))

 

posted on 2021-09-09 10:28  hhvfg  阅读(19)  评论(0)    收藏  举报