Java LeetCode 14. Prefijo común más largo

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();
    }
}

Supongo que te gusta

Origin blog.csdn.net/sakura_wmh/article/details/113079448
Recomendado
Clasificación