Inverser une chaîne en JavaScript

Sahil Bhosale 12 octobre 2023
  1. Inverser une chaîne à l’aide de fonctions intégrées dans JavaScript
  2. Inverser une chaîne à l’aide de la récursivité en JavaScript
Inverser une chaîne en JavaScript

Il existe différentes manières d’inverser une chaîne en JavaScript sur place sans utiliser d’espace supplémentaire. L’avantage de ceci est que vous pouvez écrire un programme avec O(1) complexité spatiale. Cela signifie que vous n’avez pas besoin d’espace supplémentaire en mémoire pour stocker les données. Vous n’utilisez que le même espace qui nous est fourni, c’est-à-dire la taille de l’entrée, et inversez la chaîne donnée dans cet espace.

Voici quelques-unes des façons dont vous pouvez inverser une chaîne en JavaScript.

Inverser une chaîne à l’aide de fonctions intégrées dans JavaScript

Voyons comment inverser une chaîne en place à l’aide des fonctions intégrées disponibles en JavaScript. Il y a 3 fonctions à l’aide desquelles vous pouvez réaliser ceci et ces fonctions - split(), reverse() et join().

Voici ce que chacune des trois fonctions fera.

  1. split() séparera chaque caractère d’une chaîne et la convertira en tableau.
  2. reverse() prendra ce tableau et inversera les éléments qu’il contient.
  3. join() rejoindra les caractères qui ont été inversés par la fonction reverse().
function reverse(s) {
  return s.split('').reverse().join('');
}

var sss = reverse('adam')
console.log(sss)

Production:

mada

Pour inverser une chaîne, il faut d’abord appliquer la fonction split() sur la chaîne d’entrée. Cette fonction convertit la chaîne en un objet contenant tous les caractères de cette chaîne. Après cela, vous pouvez utiliser la fonction JavaScript intégrée reverse() pour inverser une chaîne. Cette fonction ne fonctionne pas directement avec les chaînes, vous devez donc d’abord convertir la chaîne en objet en utilisant la fonction split().

Vous avez maintenant un objet à l’intérieur duquel tous les caractères sont dans l’ordre inverse. Pour reconvertir cet objet en chaîne, vous pouvez utiliser la fonction join(). Cette fonction prendra chaque caractère de la chaîne et la joindra pour former une chaîne.

Inverser une chaîne à l’aide de la récursivité en JavaScript

Une autre façon d’inverser une chaîne est d’utiliser la récursivité. Ici, vous avez créé une fonction nommée reverse(), qui prend str comme argument. Lors de l’écriture d’une fonction récursive, vous devez d’abord vous assurer d’ajouter une condition de base. Une condition de base nous permet de terminer un programme récursif pendant l’exécution. S’il n’y a pas de condition de base dans le programme, il fonctionnera indéfiniment, ce que nous ne voulons pas. C’est la raison pour laquelle vous devez vérifier si la chaîne qu’un utilisateur passe à cette fonction est vide ou non. S’il est vide, vous terminerez le programme; sinon, vous effectuerez des appels récursifs.

function reverse(str) {
  if (str === '') {
    return '';
  } else {
    return reverse(str.substr(1)) + str.charAt(0);
  }
}

let reverseStringIs = reverse('adam')
console.log(reverseStringIs)

Production

mada

Dans la partie autre, nous n’avons qu’une seule ligne de code. Vous pouvez en outre penser que vous avez divisé cette ligne de code en 2 parties (c’est juste pour supposer que vous puissiez comprendre le code). La première partie est reverse(str.subset(1)) et la seconde partie est str.charAt(0).

La première partie prend la totalité de adam et prend son sous-ensemble à partir de l’index no. 1 c’est-à-dire dam car d est en première position. Et la deuxième partie prend la chaîne entière c’est-à-dire adam, et obtient le caractère à l’index 0 c’est-à-dire a.

Nous effectuons un appel récursif puis passons cette sous-chaîne à la fonction reverse() c’est-à-dire dam et non adam, puisque vous avez déjà créé une sous-chaîne à partir de la chaîne d’origine. Maintenant, lorsque vous exécutez la partie else, vous aurez dam comme chaîne d’entrée. Vous allez créer une sous-chaîne de cette chaîne en utilisant la fonction substr() à partir de l’index 1. Et la sous-chaîne sera am, et le str.charAt(0) nous donnera le caractère à l’index 0 et ie d.

Ce processus se poursuit jusqu’à ce que la chaîne entière devienne vide. À ce stade, voici à quoi ressemblera notre pile.

pile de récursivité

C’est la séquence dans laquelle les caractères seront renvoyés de la pile - m, a, d, a. Dès que la chaîne devient vide, le programme commencera à extraire les éléments un par un de la pile, et vous obtiendrez la chaîne finale dans l’ordre inverse, madam, en sortie.

Sahil Bhosale avatar Sahil Bhosale avatar

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