题解 | #最长公共子串#
最长公共子串
https://www.nowcoder.com/practice/f33f5adc55f444baa0e0ca87ad8a6aac
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # longest common substring # @param str1 string字符串 the string # @param str2 string字符串 the string # @return string字符串 # class Solution: def LCS(self , str1: str, str2: str) -> str: n = len(str1) m = len(str2) dp = [[0]*(m+1) for _ in range(n+1)] ans = [0,0] for i in range(n): for j in range(m): if str1[i] == str2[j]: dp[i+1][j+1] = dp[i][j]+1 if dp[i+1][j+1] > ans[1]: ans = [i,dp[i+1][j+1]] return str1[ans[0]-ans[1]+1:ans[0]+1]