今天看了七月在线算法课。再一次认识了LCS,现在整理记录:
LCS(Longest Common Subsequence)最长公共子序列。
一个序列S任意删除若干个字符得到新序列T,那么T叫做S的子序列。
两个序列X和Y的公共子序列中,长度最长的那个叫X和Y的最长公共子序列。
例如:
字符串13455和245576的最长公共子序列为455.
字符串acdfg和adfc的最长公共子序列为adf.
注意:这里要区别最长公共子串LCS(Longest Common Substring),这个要求的是字符串必须连续。
这里偷懒,直接拿了老师的PPT。记好下面的记号。
下面就进行LCS解法的探索:
当x=y的时候:
然后我们就能得到: