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

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

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

while 1:
    try:
        a = input()
        b = input()
        dic = {}
        y = []
        for i in range(len(a)):
            for j in range(i+1,len(a)):
                if a[i: j+1] in b:
                    dic[a[i:j+1]] = len(a[i:j+1])
        for i in dic:
            if dic[i] == max(dic.values()):
                y.append(i)
#以下为了解决相同长度字符串出现相同长度长度字串的问题
        if len(y) == 1:
            print(y[0])
        else:
            if len(a)>len(b):
                for i in range(len(b)):
                    if b[i:i+len(y[0])] in y:
                        print(b[i:i+len(y[0])])
                        break
            elif len(a)<len(b):
                for i in range(len(a)):
                    if a[i:i+len(y[0])] in y:
                        print(a[i:i+len(y[0])])
                        break
            else:
                for i in range(len(a)):
                    if a[i:i+len(y[0])] in y:
                        m =i
                        ym = a[i:i+len(y[0])]
                        break
                for i in range(len(b)):
                    if b[i:i+len(y[0])] in y:
                        n =i
                        yn = b[i:i + len(y[0])]
                        break
                if m>n:
                    print(yn)
                elif m<n:
                    print(ym)

    except:
        break

全部评论

相关推荐

07-05 16:23
门头沟学院 Java
mengnankk:我投了300,约了5 6个面试。感觉项目写的太多了。一个项目就写五六个亮点,不是把整个项目的功能描述下。其他的没啥,简历看起来有点长
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 11:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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