题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

Swift题解

maxHuiwenStr()

func maxHuiwenStr() {
    let str = readLine()!
    var array = [Character](str)
    var start = 0
    var end = 0
    var maxLen = 0
    for (index, _) in str.enumerated() {
        let len1 = expand(left: index, right: index, array: array)
        let len2 = expand(left: index, right: index + 1, array: array)
        let len = max(len1, len2)
        maxLen = max(len, maxLen)
    }
    print(maxLen)
}

func expand(left: Int, right: Int, array: [Character]) -> Int {
    var l = left
    var r = right
    while l >= 0, r < array.count, array[l] == array[r] {
        l -= 1
        r += 1
    }
    return r - l - 1
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务