题目:编写一个函数来查找字符串数组中的最长公共前缀
输入: strs = ["flower","flow","flight"]
输出: "fl"
public static String getMaxPre(String[] str) {
//第一步找出最短字符串,前缀既然公共的,那么最长的前缀一定只能是最短的字符串
String strOfMinLength = Arrays.stream(str).min(new Comparator<String>() {
@Override
public int compare(String str1, String str2) {
return str1.length() - str2.length() ==0 ? str1.compareTo(str2):str1.length() - str2.length();
}
}).get();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < strOfMinLength.length(); i++) {
//当前index下的字符是否是数组中所有字符串对应的index下的字符
char charAt = strOfMinLength.charAt(i);
Boolean flag = false;
for (String s : str) {
flag = charAt==s.charAt(i);
}
//r如果当前index的字符也是每个字符串对应index下的字符,则为公共字符
if(flag){
builder.append(charAt);
}
}
return builder.toString();
}