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

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

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

两个知识点: (1)两个字符串调换 a,b = b, a (2) 从较短的字符串开始遍历 range(len(a)): 但是记住range(0, len(a)):取不到len(a),那么这样就取不到字符串最后一个字符 然后从0-1,0-2,0-3,0-4,0-5,0-len(a)+1——>0-j+1,j=1,2,3,4,...len(a) 判断是否在b当中。直接就是s in b 如果j+1-i>len(res) res = a[i:j+1]

while True:
    try:
        a, b = input(), input() # a保存短,b保存长
        if len(a) > len(b):
            a, b = b, a
        res = ''
        for i in range(0, len(a)):
            for j in range(i, len(a)):
                if a[i:j+1] in b and j+1-i > len(res):
                    res = a[i:j+1]
        print(res)
    except:
        break
            
全部评论

相关推荐

点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务