美图测开的笔试题:
求两个字符串的子串个数和最大子串长度。
(需要注意一下子串和子序列概念并不相同)
字符串1:str1,字符串2:str2
用dp[i][j]表示以str1[i]和str[j]结尾的相同子串的长度。
则转移方程显然为:
1.str1[i] != str2[j],则dp[i][j] = 0
2.
str1[i] == str2[j],则dp[i][j] = dp[i-1][j-1] + 1
边界:当i==0 或j==0 的时候:如果
str1[i] == str2[j],则dp[i][j] = 1,否则为0
举例:str1 =‘abcde’ str2=‘eabc’
转移矩阵eg: