How to find the longest common prefix of all the words in a string with Scala

1 Answer

0 votes
import scala.util.matching.Regex

object LongestCommonPrefix {

  def longestCommonPrefix(input: String): String =
    if input == null || input.trim.isEmpty then
      ""
    else
      val words = input
        .toLowerCase
        .split("\\W+")
        .filter(_.nonEmpty)

      if words.isEmpty then
        ""
      else
        var prefix = words.head

        for word <- words do
          while !word.startsWith(prefix) do
            prefix = prefix.dropRight(1)

        prefix    


  def main(args: Array[String]): Unit = {
    val s1 = "The lowly inhabitants of the lowland were surprised to see the lower branches."
    println(s"LCP: '${longestCommonPrefix(s1)}'")

    val s2 = "unclear, uncertain, unexpected"
    println(s"LCP: '${longestCommonPrefix(s2)}'")
  }
}




/*
run:

LCP: ''
LCP: 'un'

*/

 



answered Mar 12 by avibootz

Related questions

...