题目描述
给定两个只包含小写字母的字符串,计算两个字符串的最大公共子串的长度。
注:子串的定义指一个字符串删掉其部分前缀和后缀(也可以不删)后形成的字符串。
输入描述:
输入两个只包含小写字母的字符串
输出描述:
输出一个整数,代表最大公共子串的长度
示例1
输入
asdfas
werasdfaswer
输出
6
代码实现:
def same_str(str1,str2,len1,i,lens):
if (len1+i) == len(str1):
return lens
if (len1+i) < len(str1):
if str1[i:i+len1+1] in str2:
lens.append(len1+1)
return same_str(str1,str2,len1+1,i,lens)
else:
return same_str(str1,str2,0,i+1,lens)
lists = []
while True:
try:
lists.append(input())
except:
break
str1 = lists[0]
str2 = lists[1]
if len(lists[0])>len(lists[1]):
str2 = lists[0]
str1 = lists[1]
str_new = str2
len1 = 0
i = 0
lens = []
result =same_str(str1,str2,len1,i,lens)
result.sort(reverse=True)
print(result[0])