whatsapp sharing button Contacto youtube sharing button Canal instagram sharing button Contacto facebook sharing button Contacto email sharing button Contacto

Invertir palabras en una cadena

Ejercicio de strings #3
Java | Python | PHP | C++ | JavaScript


En este blog, te enseñaré cómo resolver el ejercicio Reverse Words in a String de la plataforma LeetCode en Java, Python, PHP, C++ y JavaScript.

En este artículo, vamos a ver lo siguiente:

✅ Una explicación del problema
✅ Una solución eficiente
✅ Implementaciones en Java, Python, PHP, C++ y JavaScript


                       

Dado un string s, devuelve una cadena con las palabras de s en orden inverso, concatenadas por un solo espacio.

reverse-words-in-a-string-leetcode-espanol

¡Aprende a invertir las palabras de un string en tus lenguajes de programación favoritos!  En este tutorial, te guiaremos paso a paso a través de soluciones en C++, Python, Java, JavaScript y PHP. ¡Perfecto para principiantes y programadores intermedios!

Pasos para realizar el ejercicio:

1.-Se divide el string dado en un listado de palabras, utilizando el espacio en blanco como separador. Este listado se guarda en el array palabras. El resultado es un array con cuatro elementos, que son las palabras "El", "cielo", "es" y "azul". 2.- Se inicializa la variable resultado a un string vacío. Este string se utilizará para almacenar la frase de texto invertida. 3.- Se recorre la lista de palabras, de atrás hacia adelante. Para cada palabra, se comprueba si está vacía. Si lo está, se ignora. Si no lo está, se añade a la cadena de texto invertida, con un espacio en blanco al final. 4.-La cadena de texto invertida se devuelve después de utilizar el método trim(). Este método elimina los espacios en blanco adicionales al principio y al final de la cadena de texto. Mejora tus habilidades en manipulación de cadenas con este ejercicio práctico. Aprenderás a invertir el orden de las palabras en un string utilizando diferentes técnicas y lenguajes de programación. Ideal para entrevistas técnicas y proyectos personales.



Código en Java

class Solution {
  public String reverseWords(String s) {
    // Paso #1
    String[] palabras = s.split(" ");
    // Paso #2
    String resultado = "";
 
    // Paso #3
    for (int i = palabras.length - 1; i >= 0; i--) {
      if (palabras[i].isEmpty()) continue;
      resultado = resultado.concat(palabras[i]).concat(" ");
    }
 
    // Paso #4
    return resultado.trim();
  }
}



Código en C++

#include <string>
#include <vector>

class Solution {
public:
    std::string reverseWords(std::string s) {
        // Paso #1: Dividir la cadena en palabras (usando un vector en C++)
        vector<string> palabras;
        string palabra;
        for (char c : s) {
            if (c == ' ') {
                if (!palabra.empty()) {
                    palabras.push_back(palabra);
                    palabra.clear();
                }
            } else {
                palabra += c;
            }
        }
        if (!palabra.empty()) {
            palabras.push_back(palabra);
        }

        // Paso #2: Inicializar la cadena de resultado
        string resultado;

        // Paso #3: Concatenar las palabras en orden inverso
        for (int i = palabras.size() - 1; i >= 0; i--) {
            resultado += palabras[i] + " ";
        }

        // Paso #4: Eliminar espacios en blanco adicionales al final
        return resultado.substr(0, resultado.size() - 1);
    }
};



Código en php

class Solution {
 
    /**
     * @param String $s
     * @return String
     */
    function reverseWords($s) {
        $palabras = explode(' ',$s);
        $resultado='';
 
        foreach ($palabras as $key => $palabra){
            if(strlen($palabra)==0) continue;
            $resultado = $palabra.' '.$resultado;
        }
 
        return trim($resultado);
    }
}



Código en Python

class Solution(object):
    def reverseWords(self, s):
        # Paso #1
        palabras = s.split(" ")
        # Paso #2
        resultado = ""
 
        # Paso #3
        for i in range(len(palabras) - 1, -1, -1):
            if palabras[i].strip() == "":
                continue
            resultado += palabras[i] + " "
 
        # Paso #4
        return resultado.strip()



Código en JavaScript

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    // Paso #1
  const palabras = s.split(" ");
 
  // Paso #2
  let resultado = "";
 
  // Paso #3
  for (let i = palabras.length - 1; i >= 0; i--) {
    if (palabras[i] === "") {
      continue;
    }
    resultado += palabras[i] + " ";
  }
 
  // Paso #4
  return resultado.trim();
};
        
    

Conclusión

En este blog, hemos visto cómo realizar el ejercicio Reverse Words in a String en Java, Python, PHP, C++ y JavaScript. Hemos visto ejemplos de código en cada lenguaje de programación.
Foto de perfil

Autor: Hermes Sanchez
Fecha: 7 Nov 2023

Artículos Relacionados