动态规划_最长回文子序列
Sub d53_动态规划_最长回文子序列() text1 = "cbbd" res = longestPalindromeSubseq(text1) Debug.Print (res) End Sub Private Function longestPalindromeSubseq(s) leng = Len(s) ReDim dp(leng, leng) For i = leng To 0 Step -1 dp(i, i) = 1 For j = i + 1 To leng If Mid(s, i + 1, 1) = Mid(s, j + 1, 1) Then dp(i, j) = dp(i + 1, j - 1) + 2 Else dp(i, j) = Application.Max(dp(i + 1, j), Application.Max(dp(i, j), dp(i, j - 1))) End If Next Next longestPalindromeSubseq = dp(0, leng) End Function

浙公网安备 33010602011771号