Задача «Самый длинный общий префикс» относится к категории простых и является хорошим началом для понимания более сложных алгоритмов. Я сосредоточусь на объяснении решения, которое работает, а не на временной и пространственной сложности.

Вызов:

«Напишите функцию для поиска самой длинной строки общего префикса среди массива строк.

Если общего префикса нет, вернуть пустую строку «». LeetCode

Примечание.

//Find longest equal prefix
// Array of strings
//Return “” if empty
//Prefix will always start at the beginning of the string

Пример:

string = [“pot”, “pop”, “top”]
return “”
string = [“flower”,” flow”,” floor”]
return “flo”

Пояснение:

//Loop through the array of substrings compares each of the characters at a similar index, 
//starting from the beginning and increment 
//until different 
//then return the longest prefix.

1.Префикс начинается с пустой строки
longestPrefix = “”

2.Если общего префикса нет, вернуть пустую строку «». LeetCode

if (strs.length === 0) return longestPrefix

return longestPrefix

3.Прокручивать символы подстроки, начиная с первого символа первой подстроки

for (let i = 0; i < strs[0].length; i++){

for (let j = 0; j < strs.length; j++){

4. Сравните каждый символ подстрок массива с одинаковым индексом и увеличивайте количество символов до тех пор, пока они не будут равны

const currentChar = strs[0][i]

if (strs[j][i] !== currentChar) return longestPrefix

5. вернуть самый длинный префикс

longestPrefix += currentChar

Решение:

var longestCommonPrefix = function(strs) {
longestPrefix = “”
if (strs.length === 0) return longestPrefix
for (let i = 0; i < strs[0].length; i++){
const currentChar = strs[0][i]
for (let j = 0; j < strs.length; j++){
if (strs[j][i] !== currentChar) return longestPrefix
}
longestPrefix += currentChar
}
return longestPrefix
};