题解 | #查找两个字符串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
            
全部评论

相关推荐

昨天 11:42
江西农业大学 C++
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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