解答思路:
相当于 qwert qwertyu 的最长公共前缀是 qwert
本题目的思路是最长公共字符串肯定不会比整个数组中最短的长,顶多相等。
那么我们假设第一个是公共串,让他和后面的挨个对比,如果它比后面的短,那么就逐个字符对比,如果共同的比当前的短则截断
完整代码如下所示:
public static String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0){
return "";
}
String pre = strs[0];
int len;
for(int i=0;i<strs.length;i++){
//匹配选出来最短的字符串
len = pre.length()>strs[i].length()?strs[i].length():pre.length();
int j;
//追个比较
for(j=0;j<len;j++){
if(pre.charAt(j)!=strs[i].charAt(j)){
break;
}
}
pre= pre.substring(0,j);
}
return pre;
}
public static void main(String[] args) {
String[] s ={};
String a=Test7.longestCommonPrefix(s);
System.out.println(a);
}
如果您有更好的解决思路,请添加QQ群691761026一起交流。