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

1 Answer

0 votes
function longestCommonPrefix(input) {
    if (!input || input.trim() === "") {
        return "";
    }

    // Split by non‑word characters (same as Java's split("\\W+"))
    const words = input
        .toLowerCase()
        .split(/\W+/)
        .filter(w => w.length > 0);

    if (words.length === 0) {
        return "";
    }

    let prefix = words[0];

    for (const word of words) {
        while (!word.startsWith(prefix)) {
            prefix = prefix.slice(0, -1);
            if (prefix === "") {
                return "";
            }
        }
    }

    return prefix;
}

const s1 = "The lowly inhabitants of the lowland were surprised to see the lower branches.";
console.log("LCP:", `'${longestCommonPrefix(s1)}'`);

const s2 = "unclear, uncertain, unexpected";
console.log("LCP:", `'${longestCommonPrefix(s2)}'`);



/*
run:

LCP: ''
LCP: 'un'

*/

 



answered Mar 12 by avibootz

Related questions

...