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

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

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

def f(m,b):#只要m不在b中间,就去掉开头第一个字符,接着判断后面的部分,直到m在b里面或者m为空
    if m in b or m=='':
        return m
    elif m not in b:
        m=m.lstrip(m[0])
        return f(m,b)

def publicsub(a,b):#a是短的字符串
    l=[]
    m=a[0]
    n=[]#储存公共子串的长度
    for i in range(1,len(a)):
        m+=a[i]
        if m in b:
            l.append(m)
            n.append(len(m))
            #i+=1
        elif m not in b:
              m=f(m,b)
    d=l[n.index(max(n))]
    return d

while 1:
    try:
        s1,s2=input(),input()
        l1,l2=len(s1),len(s2)
        if l1>=l2:
            print(publicsub(s2,s1))
        elif l1<l2:
            print(publicsub(s1,s2))
        #print(d)
    except:break
            
        
            
    

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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