How to merge two strings based on shared suffix and prefix in Scala

1 Answer

0 votes
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
 
*/

 



answered Jan 24 by avibootz
...