Skip to main content

Longest Common Prefix

Problem statement

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1:

Input: strs = ["flower","flow","flight"]Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]Output: ""Explanation: There is no common prefix among the input strings.

Constraints:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] consists of only lower-case English letters.

My solution

/**
* @param {string[]} strs
* @return {string}
*/
function longestCommonPrefix(strs) {
let common = "";
if (strs.length === 0) {
return common;
}
if (strs.length === 1) {
return strs[0];
}
let index = 0;
let notEqual = false;

while (!notEqual) {
let char;
for (let i = 0; i < strs.length; i++) {
const charAtIndex = strs[i].charAt(index);
if (!char) {
char = charAtIndex;
}
if (char !== charAtIndex || charAtIndex === "") {
notEqual = true;
char = "";
break;
}
}
++index;
common += char;
}

return common;
}