LCS:最長共通部分列

2 つの文字列に共通して現れる「一番長い並び」を、表を 1 マスずつ埋めて求めます。

2 つの文字列(英字、最大 10 文字)
埋めるステップ
0
計算中
左上(一致)
上・左(不一致)
復元経路
LCS に採用した文字
部分列とは、元の文字列から文字を飛ばしながら順序を保って取り出した並び。 2 つの文字列に共通する部分列のうち最長のものが LCS です(DNA 比較・diff・文書の類似度などに使われます)。
dp[i][j] =「文字列 A の最初の i 文字、B の最初の j 文字での LCS の長さ」。
末尾の文字が一致左上+1(共通文字が 1 つ伸びる)
一致しない上と左の大きい方(どちらかの末尾を捨てる)

いま計算しているマス

ここが DP の本質