2021-01-05(最长公共前缀)

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入: [“flower”,“flow”,“flight”]
输出: “fl”

示例 2:

输入: [“dog”,“racecar”,“car”]
输出: “”

解释: 输入不存在公共前缀。

说明:
所有输入只包含小写字母 a-z 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix

参考答案

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    let tmp = ''
    let len = 0
    let index = 0
    for (let i = 0; i < strs.length; i ++) {
        if (i === 0) len = strs[i].length
        if (strs[i].length < len) {
            len = strs[i].length
            index = i
        }
    }
    let str = strs[index]
    for (let i = len; i > 0; i --) {
        if (validate(str, strs)) {
            tmp = str
            break
        } else {
            str = str.slice(0, i - 1)
        }
    }

    return tmp
};

function validate(str, list) {
    let len = str.length
    let tmp = 0
    for (let i = 0; i < list.length; i ++) {
        if (str !== list[i].slice(0, len)) {
            console.log(str + ':' + list[i].slice(0, len))
            return false
        } else {
            if (i + 1 === list.length) {
                console.log(str)
                return true
            }
        }
    }
}

你可能感兴趣的:(算法题,leetcode)