题解 | #参数解析#

公共子串计算

http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

import re
def stack_count(s1,s2):
    if len(s1) > len(s2):
        s1,s2 = s2,s1
    stack=[]
    max_list=[]   #栈弹出后用list记录下弹出的长度,最后用max(list)来获取最大公共字符串
    for i in range(len(s1)):
        stack.append(s1[i])
        for j in s1[i+1:]:
            stack.append(j)
            if not re.search("".join(stack),s2) :  #注意:不能用表达式==none来判断,必须if not
                max_list.append(len(stack)-1)
                stack=[]
        max_list.append(len(stack))
        if len(stack)==len(s1):
            print(len(s1))
            return True              #优化,如果从第一个字母开始遍历stack最大的值等于s1那必然最大值
        else:
            stack=[]
    print(max(max_list))
    return True
while True:
    try:
        s1,s2 = input(),input()
        if len(s1) > len(s2):
            s1,s2 = s2,s1
        stack_count(s1,s2)
    except:
        break
全部评论
这方法只能全匹配str1
点赞 回复 分享
发布于 2021-10-01 23:40

相关推荐

不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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