算法题之公共子串计算

描述

给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。

注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。
数据范围:字符串长度:1\le s\le 150\1≤
s≤150 进阶:时间复杂度:O(n^3)\O(n3) ,空间复杂度:O(n)\O(n)

输入描述:

输入两个只包含小写字母的字符串

输出描述:

输出一个整数,代表最大公共子串的长度

示例1

输入:

asdfas
werasdfaswer

复制

输出:

6
while True:
    try:
        str1 = raw_input()
        str2 = raw_input()
        min_l = ""
        max_l = ""
        if len(str1) >= len(str2):
            min_l, max_l = str2, str1
        else:
            min_l, max_l = str1, str2
        
        result = 0
        for i in range(len(min_l)):
            for j in range(i, len(min_l)+1):
                res_str = min_l[i:j]
                if res_str in max_l:
                    if len(res_str) > result:
                        result = len(res_str)
        print result  
            
            
    except:
        break
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章