思路:遍历数组,进行扫描,两两字符串比较,取得公共子串,作为目前的最优解,拿上一次的最优解的公共子串和下一个字符串继续取公共部分!!!
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0||strs ==null) return "";
//遍历数组,进行两两取公共前缀
String prefix=strs[0];
for(int i = 1; i<strs.length;i++){
prefix = method(prefix,strs[i]);
}
return prefix;
}
public static String method(String str1,String str2){
if(str1.length()==0||str1==null||str2.length() == 0|str2==null) return "";
int ans= 0 ;
int timesToCompare = Math.min(str1.length(),str2.length());
for(int i = 0 ;i < timesToCompare; i++){
if(str1.charAt(i)==str2.charAt(i)){
ans++;
}
else break;
}
if(ans==0) return "";
return str1.substring(0,ans);
}
}