Longest Common Prefix

来源:互联网 发布:深圳软件企业认定 编辑:程序博客网 时间:2024/05/22 02:01

Write a function to find the longest common prefix string amongst an array of strings.
就是找一个字符串数组的公共最长前缀。先上代码

 public static String longestCommonPrefix(String[] strs) {        if(strs.length==0){            return "";        }        StringBuilder common = new StringBuilder();        int min =findMin(strs);        int index =0;        while(index<min){            for(int i=1;i<strs.length;i++){                if(strs[i].charAt(index)!=strs[0].charAt(index)){                    return common.toString();                }            }            common.append(strs[0].charAt(index));            index++;        }        System.out.println(common.toString());        return common.toString();}    public static int findMin(String[] strs){        int length = strs[0].length();        for(int i=0;i<strs.length;i++){            if(strs[i].length()<length){                length = strs[i].length();            }        }        return length;    }

主要思想就是首先有一个方法寻找字符串数组中最小的字符串长度,因为最长公公前缀一定小于最短的字符串。写的时候犯了一个错误,就是逐一与strs[0]的进行比较,结果导致每次StringBuilder都会进行一次append操作。经过借鉴,发现应该每次只针对每一个字符串的一位进行比较。如果都相同,则才可以证明该字符是所有的字符串所共有的。

原创粉丝点击