14. 最长公共前缀

假设首元素即为结果,那么其必然再后续所有字符串中完整出现。

进行迭代,两两比较,遇到不同元素则表示截至当前元素得最长公共前缀已得出

时间O(m*n)(m为每个元素平均长度,n为元素个数),空间O(1)

public String longestCommonPrefix(String[] strs) {
        if (strs.length==0) return "";
        String res = strs[0];
        for (int i=1;i<strs.length;i++){
            int j=0;
       // [0,i-1]的最长公共前缀和当前下标的元素进行比较,得出[0,i]的最长公共前缀的长度
for(;j<strs[i].length() && j<res.length();j++){ if (strs[i].charAt(j)!=res.charAt(j)){ break; } }
       // 得出新一轮的比配长度后,对之前的结果进行截取 res
= res.substring(0,j); if ("".equals(res)) return ""; } return res; }
争取早日不再是一只菜鸡
原文地址:https://www.cnblogs.com/jchen104/p/14582348.html