lively-krishnan / brus_question_warehouse

Keep learning
1 stars 1 forks source link

14. 最长公共前缀 #14

Open 18355416639 opened 2 years ago

18355416639 commented 2 years ago

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

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

 

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
18355416639 commented 2 years ago

思路: 判断数组长度,为0的话直接返回空; 预定义最长公共前缀为数组第一项 遍历数组,遍历公共前缀字符,拿数组当前项的当前下标字符与公共前缀字符的下标进行对比,不相等就截取公共字符,结束当前循环

var longestCommonPrefix = function(strs) {
    if(strs.length === 0) {
        return ''
    }
    let commonStr = strs[0]
    for(let i=0;i < strs.length;i++ ) {
        for(let j=0;j < commonStr.length; j++) {
            if(strs[i][j] !== commonStr[j]){
                commonStr = commonStr.slice(0,j)
                break
            }
        }
    }
    return commonStr
};
lively-krishnan commented 2 years ago

思路: 判断数组长度,为0的话直接返回空; 预定义最长公共前缀为数组第一项 遍历数组,遍历公共前缀字符,拿数组当前项的当前下标字符与公共前缀字符的下标进行对比,不相等就截取公共字符,结束当前循环

var longestCommonPrefix = function(strs) {
    if(strs.length === 0) {
        return ''
    }
    let commonStr = strs[0]
    for(let i=0;i < strs.length;i++ ) {
        for(let j=0;j < commonStr.length; j++) {
            if(strs[i][j] !== commonStr[j]){
                commonStr = commonStr.slice(0,j)
                break
            }
        }
    }
    return commonStr
};

还有其他方式吗!