7-1 jmu-ds-最长公共子串
时间: 2024-11-20 15:55:47 浏览: 12
"7-1 JMU-DS 最长公共子串"看起来像是某个编程题目的编号或者是课程作业的一部分。在这个题目中,JMU很可能是指詹姆斯·麦迪逊大学(James Madison University),DS则可能是Data Structures(数据结构)的缩写。
最长公共子串(Longest Common Substring,LCS)是一个经典的计算机科学问题,目标是找到两个给定字符串中最长的共同子序列。这通常涉及到动态规划算法,通过创建一个二维数组来存储每个子问题的解,并回溯查找最大值。在Python中,可能会使用类似这样的代码:
```python
def longest_common_substring(s1, s2):
m = len(s1)
n = len(s2)
dp = [[0] * (n + 1) for _ in range(m + 1)]
max_length = 0
end_index = 0
for i in range(1, m+1):
for j in range(1, n+1):
if s1[i-1] == s2[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
if dp[i][j] > max_length:
max_length = dp[i][j]
end_index = i - 1
else:
dp[i][j] = 0
return s1[end_index-max_length+1:end_index+1]
# 使用示例
s1 = "ABCDGH"
s2 = "AEDFHR"
print(longest_common_substring(s1, s2)) # 输出结果:ADH
```
阅读全文