Maison > développement back-end > Problème PHP > Comment supprimer les parenthèses les plus extérieures en php

Comment supprimer les parenthèses les plus extérieures en php

coldplay.xixi
Libérer: 2023-03-05 13:06:02
original
2077 Les gens l'ont consulté

La méthode de suppression des parenthèses les plus extérieures en PHP : effectuez d'abord une décomposition primitive sur la chaîne valide non vide S ; puis obtenez la primitive de chaîne de crochets valide, puis supprimez et décomposez les parenthèses les plus extérieures de chaque chaîne primitive Parenthèses extérieures ; ; renvoie enfin la chaîne S.

Comment supprimer les parenthèses les plus extérieures en php

[Recommandations d'apprentissage associées : tutoriel graphique php]

Comment supprimer la parenthèse la plus externe en PHP :

La chaîne de parenthèse valide est vide (""), "(" + A + ")" ou A + B, où A et B sont tous deux des chaînes entre crochets valides et + représente la concaténation de chaînes. Par exemple, "", "()", "(())()" et "(()(()))" sont toutes des chaînes entre crochets valides.

Si la chaîne valide S n'est pas vide et qu'il n'y a aucun moyen de la diviser en S = A+B, nous l'appelons une primitive, où A et B sont tous deux des chaînes de caractères entre crochets valides non vides.

Étant donné une chaîne valide non vide S, pensez à la décomposer en primitives telles que : S = P_1 + P_2 + ... + P_k, où P_i est une primitive de chaîne entre crochets valide.

Effectuez une décomposition primitive sur S, supprimez les crochets les plus extérieurs de chaque chaîne primitive dans la décomposition et renvoyez S.

Exemple 1 :

Entrée : "(()())(())"

Sortie : "()()()"

Explication :

La chaîne d'entrée est "(()())(())", et la décomposition primitive est "(() ())" + "(())",

Après avoir supprimé le crochet le plus à l'extérieur de chaque partie, nous obtenons "()()" + "()" = "()()()" .

Exemple 2 :

Entrée : "(()())(())(()(()))"

Sortie : "()()()()())"

Explication :

La chaîne d'entrée est "(()())(()) (()(()))", la décomposition primitive donne "(()())" + "(())" + "(()(()))",

supprimer chaque Après le support le plus à l'extérieur dans la partie séparée, nous obtenons "()()" + "()" + "()(())" = "()()()()(())".

Exemple 3 :

Entrée : "()()"

Sortie : ""

Explication :

La chaîne d'entrée est "()()", et la décomposition primitive est "()" + "()".

Supprimez la couche la plus externe de chaque partie après le entre parenthèses, nous obtenons "" + "" = "".

Conseils :

S.length <= 10000
S[i] 为 "(" 或 ")"
S 是一个有效括号字符串
来源:力扣(LeetCode)
class Solution {
    /**
     * @param String $S
     * @return String
     */
    function removeOuterParentheses($S) {
        $strlen = strlen($S);
        $str = &#39;&#39;;
        $sum = 0;
        $star = 1;
        for($i=0;$i<$strlen;$i++){
            if($S[$i] == &#39;(&#39;){
                $sum--;
            }else{
                $sum++;
            }
            if($sum == 0){
                $str.=substr($S,$star,$i-$star);
                $star = $i+2;
            }
        }
        return $str;
    }
}
Copier après la connexion

Recommandations d'apprentissage associées : programmation php(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal