RosettaCodeData/Task/Longest-common-subsequence/Scala/longest-common-subsequence-3.scala
2023-07-01 13:44:08 -04:00

11 lines
374 B
Scala

def lcs[T]: (List[T], List[T]) => List[T] = {
case (_, Nil) => Nil
case (Nil, _) => Nil
case (x :: xs, y :: ys) if x == y => x :: lcs(xs, ys)
case (x :: xs, y :: ys) => {
(lcs(x :: xs, ys), lcs(xs, y :: ys)) match {
case (xs, ys) if xs.length > ys.length => xs
case (xs, ys) => ys
}
}
}