且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

找到最长的序列S即是A,B,C字符串中的子

更新时间:2023-11-23 15:34:16

DP [I,J,K] = $ P $的最长公共子pfixes A [1..i],B [1..j],C [1..k]

我们有:

dp[i, j, k] = dp[i - 1, j - 1, k - 1] + 1 if A[i] = B[j] = C[k]
              max(dp[i - 1, j, k], dp[i, j - 1, k], dp[i, j, k - 1]) otherwise

类似于2d的情况下,除有3个维度。复杂性是 O(LEN A * LEN B * LEN C)