Код Leet — самый длинный общий префикс


Постановка задачи

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

Алгоритм

  • если массив пуст, вернуть префикс пустой строки или если
    массив содержит 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: ""

Оцените статью
devanswers.ru
Добавить комментарий