object MergeOnOverlapApp {
def mergeOnOverlap(a: String, b: String): String = {
val lenA = a.length
val lenB = b.length
val maxPossibleOverlapLen = math.min(lenA, lenB)
val overlap =
(maxPossibleOverlapLen to 1 by -1)
.find(len => a.substring(lenA - len) == b.substring(0, len))
.getOrElse(0)
a + b.substring(overlap)
}
def main(args: Array[String]): Unit = {
val a = "fantasy time travel technology"
val b = "technology extraterrestrial life"
println(mergeOnOverlap(a, b))
}
}
/*
run:
fantasy time travel technology extraterrestrial life
*/