编写python代码:【问题描述】 最长公共子串,题目描述:a b两个字符串,求a b的最长公共子串长度,输出最长公共子串长度。子串与子序列不同,子串必须是连续的,而子序列可以不连续。 【输入形式】 分两行输入两个字符串 【输出形式】 一行输出长度 【样例输入】 abcccabccsccs abcabcabccs 【样例输出】 6
时间: 2023-12-02 09:05:23 浏览: 91
以下是求解最长公共子串问题的Python代码:
```python
def longest_common_substring(str1, str2):
m = len(str1)
n = len(str2)
dp = [[0] * (n+1) for _ in range(m+1)] # 初始化一个二维数组来记录状态
max_len = 0 # 记录最长公共子串的长度
for i in range(1, m+1):
for j in range(1, n+1):
if str1[i-1] == str2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
max_len = max(max_len, dp[i][j])
else:
dp[i][j] = 0
return max_len
if __name__ == '__main__':
str1 = input().strip()
str2 = input().strip()
print(longest_common_substring(str1, str2))
```
输入样例:
```
abcccabccsccs
abcabcabccs
```
输出样例:
```
6
```
阅读全文