Ejercicio de algoritmo: LeetCode 1768. Fusionar cadenas alternativamente

Dirección del título: LeetCode: la plataforma de aprendizaje de programación en línea líder en el mundo

Tipo: matriz

Dificultad: Ensayo

(1) La solución que pensé originalmente (alternancia de bucle directo):

Complejidad del tiempo: O (N)

Complejidad espacial: O (N)

class Solution {
    public String mergeAlternately(String word1, String word2) {
        
        char[] words1 = word1.toCharArray();
        char[] words2 = word2.toCharArray();
        int len1 = words1.length;
        int len2 = words2.length;
        StringBuilder builder = new StringBuilder();
        
        if(len1 > len2){
            for(int i = 0 ; i < len2; i++){
                builder.append(words1[i]);
                builder.append(words2[i]);
            }
            for(int j = len2; j < len1; j++){
                builder.append(words1[j]);
            }
            return builder.toString(); 
            
        }else{
            for(int i = 0 ; i < len1; i++){
                builder.append(words1[i]);
                builder.append(words2[i]);
            }
            for(int j = len1; j < len2; j++){
                builder.append(words2[j]);
            }
            return builder.toString(); 
        }
        

    }

}

(2) Resuelva el problema nuevamente consultando los algoritmos de otras personas:

class Solution {
    public String mergeAlternately(String word1, String word2) {
        
       StringBuilder builder = new StringBuilder();

        int i = 0; // an indicator
        int len1 = word1.length();
        int len2 = word2.length();

       while(i < len1 || i < len2){

           if(i < len1){
               builder.append(word1.charAt(i));
           }
           if(i < len2){
               builder.append(word2.charAt(i));
           }

            i++;
       }
        return builder.toString();
    }

}

Idea de resolución de problemas: es bastante inteligente utilizar un indicador (i) y condiciones de restricción (i < len1) y (i < len2) para evitar problemas fuera de límites si se convierte en una matriz de caracteres.

Supongo que te gusta

Origin blog.csdn.net/qq_41758969/article/details/131968679
Recomendado
Clasificación