-1

因此,我正在查看此 python 代码以查找两个字符串的最长子序列,但我不明白“#line A”为什么第三个参数是 key=len。从我学到的 len 是一个返回字符串长度的函数,但我不明白它是如何在这里使用的。

def lcs(xstr, ystr):
    """
    >>> lcs('thisisatest', 'testing123testing')
    'tsitest'
    """
    if not xstr or not ystr:
        return ""
    x, xs, y, ys = xstr[0], xstr[1:], ystr[0], ystr[1:]
    if x == y:
        return x + lcs(xs, ys)
    else:
        return max(lcs(xstr, ys), lcs(xs, ystr), key=len) #line A
4

1 回答 1

0

默认情况下,该max函数是根据自然值排序计算的。

但是您可以将函数作为备用“键”传递来设置您自己的标准(同样适用sort)。

这里 2 个传递值的最大值是根据字符串长度完成的,而不是默认的字符串字母数字顺序:max返回两者中最长的字符串。

于 2016-11-13T14:01:31.337 回答