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

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

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

while True:
    try:
        a = input()
        b= input()
        res = []
        #先找到所有公共子串,再返回最大子串
        #用短的输入字符串的子串和长的比较,这样按顺序写入的是短串中的子串,max会自动返回最先出现的
        if len(a) >= len(b):
            for i in range(len(b)):
                for k in range(i+1,len(b)+1): 
                    if b[i:k] in a:
                        res.append(b[i:k])
        else:
            for i in range(len(a)):
                for k in range(i+1,len(a)+1): 
                    if a[i:k] in b:
                        res.append(a[i:k])
        
        maxi = max(res, key=len, default='') #max只返回一个,如果长度相等,则返回第一个!
        print(maxi)
    except:
        break
                
                    
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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