Position actuelle: Accueil> Derniers articles> Inverser le contenu de chaque paire de supports dans une chaîne - Détails de l'implémentation PHP

Inverser le contenu de chaque paire de supports dans une chaîne - Détails de l'implémentation PHP

M66 2025-09-24

Sous-lames inversées entre chaque paire de supports

Compte tenu d'une chaîne contenant des lettres et des supports minuscules, la tâche consiste à commencer les supports les plus internes, à inverser la chaîne dans chaque paire de supports correspondant et enfin à renvoyer le résultat traité sans supports.

Exemple

entrer:

S = "(ABCD)"

Sortir:

"DCBA"

Exemple 2:

entrer:

s = "(u (amour) i)"

Sortir:

"je t'aime"

Explication: Inversez d'abord le "Love" de la sous-chaîne, puis inversez la chaîne entière.

Exemple 3:

entrer:

S = "(ed (et (OC)) el)"

Sortir:

"Leetcode"

Description: Tout d'abord, nous inversons la sous-chaîne "OC", puis "ETCO", et enfin la chaîne entière.

contrainte

  • S ne contient que des lettres et des supports en anglais minuscules.
  • Assurez-vous que tous les supports sont équilibrés.

Solution

Nous pouvons utiliser la pile pour suivre les caractères entre parenthèses et structures imbriquées. Les étapes spécifiques sont les suivantes:

  • Itéère à travers chaque caractère de la chaîne.
  • Si vous rencontrez le support d'ouverture "(", poussez-le sur la pile.
  • Si le support de clôture ")" est rencontré, le personnage est sorti de la pile jusqu'à ce que le support d'ouverture "(", inversez les personnages à l'intérieur du support et repousse la pile.
  • Enfin, le contenu de la pile est concaténé pour obtenir la chaîne inversée.

Exemple de code d'implémentation PHP:

 <?php
// Exemple 1
echo reverseParentheses("(abcd)") . "\n";  // Sortir:"dcba"

// Exemple 2
echo reverseParentheses("(u(love)i)") . "\n";  // Sortir:"iloveu"

// Exemple 3
echo reverseParentheses("(ed(et(oc))el)") . "\n";  // Sortir:"leetcode"
?>

expliquer

La fonction ReverseParentheses prend une chaîne en entrée et utilise une pile pour gérer les supports imbriqués.

  • Lorsque le support de clôture ")" est rencontré, les personnages ont commencé à sortir de la pile jusqu'au support d'ouverture "(".
  • Inverser les personnages éclatés et les repousser vers la pile.
  • Si les caractères ne sont pas des supports, ils sont directement placés sur la pile.

Enfin, concaténez les éléments de la pile pour obtenir la chaîne finale. Cette méthode peut gérer efficacement les supports imbriqués et assurer l'ordre de caractère correct après avoir inversé le contenu dans chaque paire de supports.