力扣一日一练(5)——最长公共前缀

120 阅读1分钟

题目:最长公共前缀

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

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

示例:

示例 1:

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

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

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

使用语言JavaScript:

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {

    if(strs[0]==null){
        return "";
    }
    for(var i=0;i<strs[0].length;i++){
        var re = strs[0].charAt(i);
        for(var j=1;j<strs.length;j++){
            if (i==strs[j].length || strs[j].charAt(i) != re ){
                return strs[0].substring(0, i);  
            }
                 
        }
    }
    return strs[0];
};

分析:

本题的解决需要我们对JavaScript中string的函数了解较多,我们需要知道怎样确定字符串中第几个字符是什么,所以我使用了charAt()方法,作用是返回指定索引位置的字符。我需要展示字符串几位到几位的字符是什么时,我使用substring方法,作用是方法用于提取字符串中介于两个指定下标之间的字符。

在开始部分先对strs数组中第一个字符串进行判断是否为空,如果为空则说明不可能有相同的前缀。

我们只需要对strs数组中第一个字符串进行判断,采用for循环,将字符串中每一个字节先赋值给re,对之后的另外字符串进行比较,如果数组第一个字符串的长度已经不足或者后面字符串该位置上的字符已经不匹配则返回strs数组中第一个字符串的前i位。