How to find the longest repeating substring in a string with JavaScript

1 Answer

0 votes
function longestCommonPrefix(sub1, sub2) {
    const min = Math.min(sub1.length, sub2.length);
    
    for (let i = 0; i < min; i++) {
        if (sub1[i] != sub2[i]) {
            return sub1.substring(0, i);
        }
    }

    return sub1.substring(0, min);
}

function longestRepeatingSubstring(s) {
    let lrs = "";
    let size = s.length;
    
    for (let i = 0; i < size; i++) {
        for (let j = i + 1; j < size; j++) {
            const lcp = longestCommonPrefix(s.substring(i, size), s.substring(j, size));
            if (lcp.length > lrs.length) {
                lrs = lcp;
            }
        }
    }
    return lrs;
}

const s = "javascriptpythonphpjavacdartcppjavacsharp";

console.log(longestRepeatingSubstring(s));





/*
run

"pjavac"

*/

 



answered Jan 17, 2023 by avibootz
edited Sep 23, 2025 by avibootz
...