str1 = "abcdef"
str2 = "abcxyz"
给定两个字符串，找出并返回最长的公共子串。
# 查找最长公共子串的程序

def longest_common_substring(str1, str2):
  # 计算两个字符串的长度
  l1 = len(str1)
  l2 = len(str2)

  # 初始化一个所有元素都是 0 的矩阵
  matrix = [[0 for x in range(l2+1)] for x in range(l1+1)]

  # 如果两个字符串中有相同的字母，将矩阵对应位置标为 1
  for i in range(l1):
    for j in range(l2):
      if str1[i] == str2[j]:
        matrix[i+1][j+1] = matrix[i][j] + 1
      else:
        matrix[i+1][j+1] = 0

  # 获取最长公共子串的长度
  result = 0
  for i in range(l1+1):
    for j in range(l2+1):
      result = max(result, matrix[i][j])

  # 返回结果
  return result

# 主程序
str1 = "abcdef"
str2 = "abcxyz"
result = longest_common_substring(str1, str2)

print("最长公共子串为:", result) # 输出 3