fun mergeOnOverlap(a: String, b: String): String {
val lenA = a.length
val lenB = b.length
val maxPossibleOverlapLen = minOf(lenA, lenB)
var overlap = 0
for (len in maxPossibleOverlapLen downTo 1) {
if (a.substring(lenA - len) == b.substring(0, len)) {
overlap = len
break
}
}
return a + b.substring(overlap)
}
fun main() {
val a = "fantasy time travel technology"
val b = "technology extraterrestrial life"
println(mergeOnOverlap(a, b))
}
/*
run:
fantasy time travel technology extraterrestrial life
*/