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

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

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

'''
遍历较短的字符串,
从字符串两端开始截取子串,
判断当前子串是不是公共子串,
然后依据子串的长度判断是否是最长公共子串,
每次保留最长的公共子串。
'''

str1 = input()
str2 = input()

def max_list(s1, s2):

    s = ''
    n = len(s2)
    for i in range(n):
        for j in range(n):
            if s1.find(s2[i:n-j]) < 0:
                continue
            else:
                if len(s2[i:n-j]) > len(s):
                    s = s2[i:n-j]
    
    return s

def repeat_list(s1, s2):

    if len(s1) > len(s2):
        s = max_list(s1, s2)
    else:
        s = max_list(s2, s1)
    
    return s

print(repeat_list(str1, str2))

#华为机试#
全部评论

相关推荐

05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
无实习如何秋招上岸
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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