Самая длинная общая подстрока в наборе строк JavaScript - PullRequest
0 голосов
/ 26 декабря 2018

Я пытался найти самую длинную общую подстроку в наборе строк в JavaScript.

Мне пришла идея Найти самую длинную общую начальную подстроку в наборе строк

но я не только ищу начальную подстроку

Итак, я продолжил:

Я думаю, что это работает, как ожидалось, но есть издержкиmap и sort.

function longestCommonSubstring(array) {
    // Copy the array
    let arr = array.slice().sort();
    // For each individual string sort them 
    arr = arr.map(a => a.split('').sort().join(''));
    // Check the first and last string and check till chars match
    let a0 = arr[0],
        aLast = arr[arr.length -1],
        len = arr[0].length,
        i = 0;
    while(i < len && a0[i] === aLast[i]) i++;
    // return
    return a0.substring(0,i);
}

Я что-то не так делаю?Можно ли сделать это намного более эффективным способом?

INPUT ["abc", "cxabgi"]

OUTPUT ["ab"]

...