刷刷刷,14. Longest Common Prefix

之前刷了這個,不過忘了當初怎麼寫的了,找了javascript的算法javascript

    var longestCommonPrefix = function (strs) {java

        if (strs.length == 0) return "";算法

        var res = strs[0];數組

        for (var i = 0 ; i < strs.length; i++) {ip

            while (strs[i].indexOf(res) != 0) {string

                res = res.substring(0, res.length - 1);io

                if (res.isnull) return "";function

            }變量

        }遍歷

        return res;
    };

java的同樣就是換了語言,基本同樣

        public String longestCommonPrefix(String[] strs) {
            if(strs.length == 0) return "";

        String com = strs[0];
        for(int i = 0;i < strs.length;i++){
            
            while(strs[i].indexOf(com) != 0){
                com = com.substring(0,com.length() - 1);
                if(com.equals("")) return "";

        }  
    }
    return com;
    }
}

總結:

1.默認數組第一個就是最長前綴,com變量賦值,遍歷strs數組。

2.若是不包括,就把com長度減1,知道等於0或者「」

3.當時我沒有想明白一個問題,當strs = {"leet","sleet","leets"}時,這個程序會返回「」,可是公共前綴應該是leet啊,想着想着,這個有個「前「字,從開頭開始算,而後算法就容易理解了。

相關文章
相關標籤/搜索