RosettaCodeData/Task/Longest-common-subsequence/Scala/longest-common-subsequence-2.scala

8 lines
337 B
Scala
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
def lcsRec[T]: (IndexedSeq[T], IndexedSeq[T]) => IndexedSeq[T] = {
case (a +: as, b +: bs) if a == b => a +: lcsRec(as, bs)
case (as, bs) if as.isEmpty || bs.isEmpty => IndexedSeq[T]()
case (a +: as, b +: bs) =>
val (s1, s2) = (lcsRec(a +: as, bs), lcsRec(as, b +: bs))
if(s1.length > s2.length) s1 else s2
2016-12-05 22:15:40 +01:00
}