在 Python 中查找两个给定字符串的公共特殊子字符串的大小的程序
假设我们有两个字符串s1和s2。我们必须找到最长字符串s3的大小,它是s1和s2的特殊子串。
如果可以通过从y中删除0个或多个字符来生成x,我们可以说字符串x是另一个字符串y的特殊子字符串。
因此,如果输入类似于s1='pineapple's2='people',那么输出将为5,因为特殊子串是'peple',大小为5。
示例
让我们看看以下实现以获得更好的理解-
from collections import defaultdict
def solve(s1, s2):
prev = defaultdict(int)
for i in range(len(s1)):
cur = defaultdict(int)
for j in range(len(s2)):
cur[j] = prev[j - 1] + 1 if s1[i] == s2[j] else max(cur[j - 1], prev[j])
prev = cur
return prev[len(s2)-1]
s1 = 'pineapple'
s2 = 'people'
print(solve(s1, s2))输入
'pineapple', 'people'输出结果
5
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短