# 最长公共子序列长度 :求两个字符串的最长公共子序列长度
# 输入:输入长度≤100的两个字符串
# 输出:输出两个字符串的最长公共子序列长度。
# 思想:动态规划法+分治
# 填表c矩阵:三种情况填表
# i,j>0,x[i]=y[i]
# i,j>0,x[i]!=j[i]
# i,j=0
# 动态规划法得到的表格,自底向上递推运算
def matrix(x,y):
# 初始化矩阵
c = [[0 for i in range(0, len(y) + 1)] for i in range(0, len(x) + 1)]
b = [[0 for i in range(0, len(y) + 1)] for i in range(0, len(x) + 1)]
for i in range(1,len(x) + 1):
c[i][0] = 0
b[i][0] = 0
for j in range(1,len(y) + 1):
c[0][j] = 0
b[0][j] = 0
# 动态规划法填表
for i in range(1,len(x) + 1):
for j in range(1,len(y) + 1):
if x[i-1] == y[j-1]:
c[i][j] = c[i-1][j-1]+1
b[i][j] = 1
elif c[i-1