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

1 Answer

0 votes
fun longestCommonPrefix(input: String): String {
    if (input.isBlank()) return ""

    // Split by non‑word characters (same as Java's split("\\W+"))
    val words = input
        .lowercase()
        .split(Regex("\\W+"))
        .filter { it.isNotEmpty() }

    if (words.isEmpty()) return ""

    var prefix = words.first()

    for (word in words) {
        while (!word.startsWith(prefix)) {
            prefix = prefix.dropLast(1)
            if (prefix.isEmpty()) return ""
        }
    }

    return prefix
}

fun main() {
    val s1 = "The lowly inhabitants of the lowland were surprised to see the lower branches."
    println("LCP: '${longestCommonPrefix(s1)}'")

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




/*
run:

LCP: ''
LCP: 'un'

*/

 



answered Mar 12 by avibootz

Related questions

...