题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

package main

//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param A string字符串 
 * @return int整型
*/
func getLongestPalindrome( A string ) int {
    // write code here
    maxNum := 0
    for i:= 0 ; i < len(A); i++ {
        tmpMax := 1
        j := 1
        for i - j >=0 && i + j < len(A) && A[i-j] == A[i+j] {
           //fmt.Printf("i= %v, j = %v,maxNum = %v, 2*j+1= %v \n", i,j, maxNum, 2*j + 1)
           tmpMax = max(tmpMax, 2*j + 1)
           j++
        }
        
        if i + 1 < len(A) && A[i] == A[i + 1] {
            j := 1
            tmpMax = max(tmpMax, 2)
            for i - j>=0 && i+1 + j < len(A) && A[i-j] == A[i+1+j] {
               tmpMax = max(tmpMax, 2*j + 2)
               j++
            }
            
            
        }
        maxNum = max(tmpMax, maxNum)

        
    }
    return maxNum
    
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}
全部评论

相关推荐

野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务