python的max()对二维数组的行为是:按照字典序返回最大值,而不是每一行返回一个最大值=-=。哎。
s = input()
t = input()
if len(t) > len(s):
s, t = t, s
dp = [[0] * (len(s)+1) for _ in range(len(t)+1)]
for i in range(1, len(t)+1):
for j in range(1, len(s)+1):
if t[i-1] == s[j-1]:
dp[i][j] = dp[i-1][j-1] + 1
else:
dp[i][j] = 0
max_values = []
for each_line in dp:
max_values.append(max(each_line))
max_value = max(max_values)
for i in range(1, len(t)+1):
for j in range(1, len(s)+1):
if dp[i][j] == max_value:
break
else:
continue
break
print(t[i-max_value:i])



京公网安备 11010502036488号