天天看点

最长公共前缀(leetcode)

最长公共前缀(leetcode)

        求一个字符串数组的最长公共前缀最直接的方法就是:取出第一个字符串转换为字符数组,对比每个字符串相应位数的字符。

具体代码如下:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs==null)return null;
        if(strs.length==0)return "";
        if(strs.length==1) return strs[0];
        
        char[] ch=strs[0].toCharArray();
        if(ch.length==0)return "";
        int index = -1;
        boolean check = true;
        for(int i=0;i<ch.length;i++){
            for(int j=1;j<strs.length;j++){
                if(i>=strs[j].length()||ch[i]!=strs[j].charAt(i)){
                    check=false;
                    break;
                }
            }
            if(!check) {
                index=i;
                break;
            }
            
        }
        if(check)return strs[0];
        if(index==-1)return "";
        return strs[0].substring(0,index);
    }
}
           

这样子按顺序对比,效率比较低,我们可以使用二分法对上面的代码进行改良。

题目来源:leetcode