题解 | #公共子串计算#

公共子串计算

https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

#使用滑动窗口找公共子串,时间复杂度小于n的平方
def f(s1,s2):#两个字符串,且len(s1)<len(s2)
    for i in range(len(s1),-1,-1):#i为窗口大小,从len(s1)到0
        for j in range(len(s1)-i+1):#j移动坐标,从0到len(s1)-i+1
            if s1[j:j+i] in s2:#匹配到第一个子串就返回i,此时i为最大窗口,后续不需要遍历
                return i
string1=input()
string2=input()
if len(string1)>len(string2):#找长短字符串
    s1=string2
    s2=string1
else:
    s1=string1
    s2=string2
print(f(s1,s2))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务