题解 | #查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

tmp1=input()
tmp2=input()
if len(tmp1)>len(tmp2):
    tmp1,tmp2=tmp2,tmp1
a=list(tmp1)
b=list(tmp2)
dp=[[0 for _ in range(len(b)+1)]for _ in range(len(a)+1)]
ss=[["" for _ in range(len(b)+1)]for _ in range(len(a)+1)]
max_s,max_len="",0
for i in range(1,len(a)+1):
    for j in range(1,len(b)+1):
        if a[i-1]==b[j-1]:
            dp[i][j]=1+dp[i-1][j-1]
            ss[i][j]=ss[i-1][j-1]+a[i-1]
        if dp[i][j]>max_len:
            max_len=dp[i][j]
            max_s=ss[i][j]
print(max_s)

全部评论

相关推荐

头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务