题解 | #查找两个字符串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-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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