Постановка задачи
Напишите функцию для поиска самой длинной строки с общим префиксом среди массива строк.
Если общего префикса нет, вернуть пустую строку «».
Алгоритм
-
если массив пуст, вернуть префикс пустой строки или если
массив содержит 1 слово, вернуть все слово. -
Итерация по буквам первого слова массива, и сравнение
эти буквы с той же индексированной буквой в другом мире.
Пример
let strs = ["flower","flow","flight"]
So What above line meaning is -
str[0][0] === str[1][0],
str[0][1] === str[1][1] and so on....
-
если буквы совпадают, перейти к следующему набору букв
в противном случае вернуть префикс -
Если буквы больше не совпадают, то первое слово
будет отмечено, где находится самый длинный общий префикс, поэтому
мы добавляем к нашей пустой строке.
Первая попытка решить проблему с помощью алгоритма
Функция Javascript для самого длинного общего префикса
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
let result = "";
//array is empty, return a prefix of empty string
if (strs.length === 0) {return ""}
//array has 1 word, return the whole word
if (strs.length === 1) {return strs[0]}
//Iterate through letter of first word of Array
for(let i=0 ; i<strs[0].length ; i++){
//compare those letters to same Indexed letter to other world.
for(let j=1 ; j< strs.length ; j++){
if(strs[0][i] == strs[j][i]){
continue;
}else{
return result
}
}
/*If the letter is no longer matching then the first word
will mark where the longest common prefix is, so
we add to our empty string*/
result += strs[0][i];
}
return result;
};
Тестовые примеры
Input: strs = ["flower","flow","flight"]
Output: "fl"
Input: strs = ["dog","racecar","car"]
Output: ""
Input: strs = ["",""]
Output: ""