# 给定两个字符串str1和str2,返回两个字符串的最长公共子序列,例如:str1="1A2C3D4B56",str2="B1D23CA45B6A","123456"7,返回哪一个都行。
str_a = "1A2C3D4B56"
str_b = "B1D23CA45B6A"
stra = "1ab2edasdadca"
strb = "b1dc21ab4fdfdada"
def findString(str1, str2):
index1 = index2 = 0
limit = 0
length1 = len(str1)
length2 = len(str2)
findStringList1 = []
findStringList2 = []
for i in range(length1):
if i + 1 > length2:
limit = length2
else:
limit = i + 1
for j in range(index2, limit):
if str1[i] == str2[j]:
findStringList1.append(str1[i])
index2 = j + 1
break
for i in range(length2):
if i + 1 > length1:
limit = length1
else:
limit = i + 1
for j in range(index1, limit):
if str2[i] == str1[j]:
findStringList2.append(str2[i])
index1 = j + 1
break
return findStringList1 if len(findStringList1) > len(findStringList2) else findStringList2
print(findString(str_a, str_b))
print(findString(stra, strb))
两个字符串的最长公共子序列
最新推荐文章于 2022-04-08 12:56:38 发布