func longestPalindrome(s string) string {
n := len(s)
if n < 2{
return s
}
begin := 0
maxLength := 1
dp := make([][]bool,n)
for i := range s{
dp[i] = make([]bool,n)
dp[i][i] = true
}
for L := 2;L < n + 1;L++{
for i := 0;i< n ;i++{
j := i + L -1
if j >= n{
break
}
if s[i] == s[j]{
if j - i < 3{
dp[i][j] = true
} else{
dp[i][j] = dp[i+1][j-1]
}
}
if dp[i][j] == true && maxLength < L{
maxLength = L
begin = i
}
}
}
return s[begin:begin+maxLength]
}
LeetCode5.最长回文子串---Golang
于 2023-04-23 10:42:59 首次发布
该代码实现了一个函数funclongestPalindrome,用于找出给定字符串s的最长回文子串。它使用了动态规划的方法,初始化二维布尔数组dp,并通过比较字符来确定回文子串。当找到更长的回文子串时,更新maxLength和begin坐标。
摘要由CSDN通过智能技术生成