Invertir una cadena en JavaScript
- Invertir una cadena mediante funciones integradas en JavaScript
- Invertir una cadena usando recursividad en JavaScript
Hay varias formas en las que puede invertir una cadena en JavaScript en su lugar sin utilizar ningún espacio adicional. La ventaja de esto es que puede escribir un programa con O(1)
complejidad de espacio. Significa que no necesita ningún espacio adicional en la memoria para almacenar los datos. Solo usa el mismo espacio que se nos proporcionó, es decir, el tamaño de la entrada, e invierte la cadena dada dentro de ese espacio.
A continuación, se muestran algunas de las formas en las que puede invertir una cadena en JavaScript.
Invertir una cadena mediante funciones integradas en JavaScript
Veamos cómo invertir una cadena en su lugar con la ayuda de funciones integradas disponibles en JavaScript. Hay 3 funciones con las que puede lograr esta y aquellas funciones: split()
, reverse()
y join()
.
A continuación se muestra lo que hará cada una de las tres funciones.
split()
separará cada carácter de una cadena y lo convertirá en un array.reverse()
tomará esa matriz e invertirá los elementos dentro de ella.join()
unirá los caracteres que han sido invertidos por la funciónreverse()
.
function reverse(s) {
return s.split('').reverse().join('');
}
var sss = reverse('adam')
console.log(sss)
Producción :
mada
Para invertir una cadena, primero debe aplicar la función split()
en la cadena de entrada. Esta función convierte la cadena en un objeto que contiene todos los caracteres de esa cadena. Después de eso, puede usar la función incorporada de JavaScript reverse()
para invertir una cadena. Esta función no trabaja directamente con las cadenas, por lo que primero debe convertir la cadena en un objeto usando la función split()
.
Ahora tienes un objeto dentro del cual todos los caracteres están en orden inverso. Para convertir este objeto de nuevo en una cadena, puede usar la función join()
. Esta función tomará cada carácter de la cadena y lo unirá para formar una cadena.
Invertir una cadena usando recursividad en JavaScript
Otra forma de invertir una cadena es usar recursividad. Aquí, ha creado una función llamada reverse()
, que toma str
como argumento. Mientras escribe una función recursiva, primero debe asegurarse de agregar una condición base. Una condición base nos permite terminar un programa recursivo durante la ejecución. Si no hay una condición básica en el programa, se ejecutará infinitamente, lo que no queremos. Esa es la razón por la que debe verificar si la cadena que un usuario está pasando a esta función está vacía o no. Si está vacío, terminará el programa; de lo contrario, realizará llamadas recursivas.
function reverse(str) {
if (str === '') {
return '';
} else {
return reverse(str.substr(1)) + str.charAt(0);
}
}
let reverseStringIs = reverse('adam')
console.log(reverseStringIs)
Producción
mada
En la parte else
, solo tenemos una línea de código. Además, puede pensar que ha dividido esta línea de código en 2 partes (esto es solo una suposición para que pueda entender el código). La primera parte es reverse(str.subset(1))
y la segunda parte es str.charAt(0)
.
La primera parte toma todo el adam
y toma su subconjunto a partir del índice no. 1 es decir, dam
porque d
está en la primera posición. Y la segunda parte toma la cadena completa, es decir, adam
, y obtiene el carácter en el índice 0, es decir, a
.
Realizamos una llamada de recursividad y luego pasamos esta subcadena a la función reverse()
, es decir, dam
y no adam
, ya que ya ha creado una subcadena a partir de la cadena original. Ahora, cuando ejecute la parte else
, tendrá dam
como cadena de entrada. Creará una subcadena de esta cadena usando la función substr()
comenzando desde el índice 1. Y la subcadena será am
, y str.charAt(0)
nos dará el carácter en el índice 0 y ie d
.
Este proceso continúa hasta que toda la cadena se vacía. En este punto, así es como se verá nuestra pila.
Esta es la secuencia en la que se devolverán los caracteres de la pila: m, a, d, a
. Tan pronto como la cadena se vacíe, el programa comenzará a extraer los elementos uno por uno de la pila, y obtendrá la cadena final en orden inverso, madam
, como salida.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn