用Python写一个程序,找出两个字符串中最长的相同的字符
时间: 2023-12-01 14:03:12 浏览: 90
好的,下面是一个简单的 Python 程序,可以找出两个字符串中最长的相同字符序列:
```python
def longest_common_substring(str1, str2):
m = len(str1)
n = len(str2)
# 创建一个二维数组来保存最长公共子串的长度
# 初始化为0
lcs = [[0] * (n + 1) for i in range(m + 1)]
# 记录最长公共子串的长度
max_length = 0
# 记录最长公共子串的结束位置
end_position = 0
# 填充数组
for i in range(1, m + 1):
for j in range(1, n + 1):
if str1[i - 1] == str2[j - 1]:
lcs[i][j] = lcs[i - 1][j - 1] + 1
if lcs[i][j] > max_length:
max_length = lcs[i][j]
end_position = i
else:
lcs[i][j] = 0
# 返回最长公共子串
return str1[end_position - max_length:end_position]
# 测试代码
str1 = "abcdefg"
str2 = "defghijk"
print(longest_common_substring(str1, str2))
```
输出结果为:
```
defg
```
这个程序使用了动态规划算法来解决问题,时间复杂度为 O(mn),其中 m 和 n 分别为两个字符串的长度。
阅读全文