String DP — Edit Distance & Palindromes

Classic string DP: transform one string into another using min operations.
LC 72 (Edit Distance), LC 5 (Longest Palindromic Substring), LC 516 (Longest Palindromic Subsequence).

Edit Distance — 3 operations: insert, delete, replace.
dp[i][j] = min edits to convert A[0..i-1]B[0..j-1]:
Longest Palindromic Subsequence:
dp[i][j] = LPS length of s[i..j]:
  If s[i]==s[j]: dp[i][j] = dp[i+1][j-1] + 2
  Else: dp[i][j] = max(dp[i+1][j], dp[i][j-1])
Filled
Current
Sources
Match / Optimal

Controls


Time: O(m·n) | Space: O(m·n)

Steps