龙空技术网

算法题之公共子串计算

新一代农名工 80

前言:

眼前你们对“求两个字符串的最长公共子串时间复杂度”大约比较关怀,小伙伴们都想要了解一些“求两个字符串的最长公共子串时间复杂度”的相关文章。那么小编同时在网络上汇集了一些关于“求两个字符串的最长公共子串时间复杂度””的相关内容,希望小伙伴们能喜欢,你们一起来了解一下吧!

描述

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

注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。

数据范围:字符串长度:1\le s\le 150\1≤s≤150 进阶:时间复杂度:O(n^3)\O(n3) ,空间复杂度:O(n)\O(n)

输入描述:

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

输出描述:

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

示例1

输入:

asdfaswerasdfaswer

复制

输出:

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

标签: #求两个字符串的最长公共子串时间复杂度