题解 | #编号子回文I#

编号子回文I

https://www.nowcoder.com/practice/db5995cd4783483f8b9f7a9e3b3a479f

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return string字符串
*/
func longestPalindrome( s string ) string {
    // write code here
    n :=len(s)
    if n==0{
        return ""
    }
    start ,maxLen :=0,0
    dp :=make([][]bool, n)
    for i :=0;i<n;i++{
        dp[i]=make([]bool, n)
        dp[i][i]= true
    }
    maxLen =1
    for j :=1;j<n;j++{
        for i:=0;i<j;i++{
            if s[i]==s[j]&&(j-i<=2||dp[i+1][j-1]){
                dp[i][j]=true
                if j-i+1>maxLen{
                    maxLen=j-i+1
                    start=i
                }
            }
        }
    }
    return s[start:start+maxLen]
}

全部评论

相关推荐

瑞雪兆丰年_:可以贴个超级大的校徽,以防HR眼拙
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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