思路:考虑两个字符串的最长前缀,然后遍历所有字符串,求出已得到的最长前缀与该字符串的最长前缀。在遍历的过程中,如果最长前缀为空,则跳出循环,返回“”
public String longestCommonPrefix(String[] strs) {
int m = strs.length;
if(m == 0){
return "";
}
if(m == 1){
return strs[0];
}
String lcs = strs[0];
for(int i =1;i<m;i++){
lcs = twoLongestCommonPrefix(lcs,strs[i]);
if(lcs.equals("")){
return "";
}
}
return lcs;
}
public String twoLongestCommonPrefix(String str1,String str2) {
int m = str1.length(),n = str2.length();
int min = m>n?n:m,i=0;
String lcs = "";
while(i<min){
if(str1.charAt(i) == str2.charAt(i)){
i++;
}else{
break;
}
}
lcs = str1.substring(0,i);
return lcs;
}