题解 | #最长回文子串#
最长回文子串
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
}