Longest Common Prefix

Problem Description

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:

Solution (JavaScript)

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    function cmnPrefix(a, b){
        let i = 0;
        let p = '';
        while (i < a.length && i < b.length){
            if(a[i] === b[i]) {
                p += a[i];
                i++;
            } else {
                break;
            }
        }
        return p;
    }
    
    function findCmnPrefix(strArr, prefix){
        if(!strArr.length || !prefix.length)
            return prefix;
        return findCmnPrefix(strArr.splice(1, strArr.length), cmnPrefix(prefix, strArr[0]));
    }
    
    if(!strs || !strs.length) return '';
    return findCmnPrefix(strs.splice(1, strs.length), strs[0]);
};