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'
*/