So I'm looking at this python code to find the longest subsequence of two strings but I don't understand "#line A" why the third parameter is key=len. From what I learnt len is a function which returns the length of a string but I don't understand how it's being used here.
def lcs(xstr, ystr):
>>> lcs('thisisatest', 'testing123testing')
if not xstr or not ystr:
x, xs, y, ys = xstr, xstr[1:], ystr, ystr[1:]
if x == y:
return x + lcs(xs, ys)
return max(lcs(xstr, ys), lcs(xs, ystr), key=len) #line A
max function is by default computed on the natural values ordering.
But you can pass a function as alternate "key" to set your own criterion (same goes for
Here the max of 2 passed values is done according to strings length, not strings alphanumerical ordering which would be the default:
max returns the longest string of the two.