Escriba una función para encontrar el prefijo común más largo en una matriz de cadenas.
Si no hay un prefijo común, se devuelve una cadena vacía "".
Ejemplo 1:
Entrada: strs = ["flor", "flujo", "vuelo"]
Salida: "fl"
A través del algoritmo divide y vencerás, divide y luego fusiona
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0){
return "";
}
return fen(0,strs.length-1,strs);
}
public String fen(int left,int right,String[] strs){
if(left==right){
return strs[left];
}
int mid = (right-left)/2+left;
String lefts = fen(left,mid,strs);
String rights = fen(mid+1,right,strs);
StringBuilder sb = new StringBuilder();
for(int i=0;i<(lefts.length()<rights.length()?lefts.length():rights.length());i++){
if(lefts.charAt(i)!=rights.charAt(i)){
break;
}
sb.append(lefts.charAt(i));
}
return sb.toString();
}
}