Write a function to find the longest common prefix string amongst an array of strings.
找出所有字符串中的共同字符串前缀。
方法一:让第一个字符串作为基准,遍历该字符串,依次将该字符串中的每个字符跟其他所有字符串相应字符比较,只要有一个不一样,就停止。
其实正确的基准应该是选择字符串长度最小的,这里没有选择,就会出现下标越界,可以用try-catch处理,只要出现越界异常,该字符就不会相等
public String longestCommonPrefix(String[] strs) { if(strs==null||strs.length==0) return ""; if(strs.length==1) return strs[0]; int i; //遍历基准字符串中的每个字符,并去所有 其他字符串比对该位置上是不是此字符,如果是,则比较下一个字符,不是则跳出循环 for(i=0;i0){ return strs[0].substring(0, i); }else return ""; } //比较所有字符串的第k个位置上的字符是不是c,只要有一个不是,或者下标越界异常,就返回false,表示该字符不满足。 public boolean comm(String[] strs,int k,char c){ for(int i=1;i
还有大神提出,先排序在比较第一个和最后一个字符串
public String longestCommonPrefix(String[] strs) { if(strs==null||strs.length==0) return ""; if(strs.length==1) return strs[0]; Arrays.sort(strs); char[] first=strs[0].toCharArray(); char[] last=strs[strs.length-1].toCharArray(); int i,j; for( i=0,j=0;i