leetCode 14: 最长公共前缀

最长公共前缀

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

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

        var longestCommonPrefix = function(strs) {
            var re = '';
            // 为空直接返回''
            if (!strs.length) return re;
            // 长度为1直接返回当前元素
            if (strs.length === 1) return strs[0];
            // 第j位, 循环的是数组中的第一个元素
            for (var j=0;j<strs[0].length;j++){
                // 第i个 循环的是整个数组
                for (var i=1;i<strs.length;i++){
                    // 逐位比较,比较全部通过时re增加当前字符,不通过时直接返回re。
                    if (strs[i][j] != strs[0][j]) {
                        return re
                    }
                }
                re += strs[0][j];
            }
        };


        console.log(longestCommonPrefix(['ppp','popo']))

或者

         var longestCommonPrefix = function(strs) {
            // 以第一个字符串为对照,后面的字符串都用startsWith进行判断
            if(strs && strs.length <= 1){
                return strs[0] || ''
            }
            let result = ''
            let firstStartsWith= ''// 假设公共前缀
            let first = strs[0]   // 拿到第一个数据
            for(let j = 0; j < first.length; j++) {
                firstStartsWith += first[j]
                // 遍历数组,如果都是以第一个字符开始的
                if(strs.every(item => item.startsWith(firstStartsWith))) {
                    result =  firstStartsWith
                }else{
                    return result
                }
            }
         };

         console.log(longestCommonPrefix(['ppp','popo']))


版权声明:本文为weixin_49035434原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。