Dada una string de caracteres con paréntesis de apertura y cierre. La tarea es eliminar los soportes adicionales de la cuerda y equilibrarlos.
Ejemplos:
Entrada: str = “gau)ra)v(ku(mar(rajput))”
Salida: gaurav(ku(mar(rajput)))
Entrada: str = “1+5)+5+)6+(5+9 )*9”
Salida: 1+5+5+6+(5+9)*9
Acercarse:
- Comience a atravesar de izquierda a derecha.
- Verifique si el elemento en el índice actual es un corchete de apertura ‘(‘ luego imprima ese corchete e incremente el conteo.
- Compruebe si el elemento en el índice actual es un corchete de cierre ‘)’ y si el recuento no es igual a cero, imprímalo y disminuya el recuento.
- Compruebe si hay algún elemento que no sea corchetes en el índice actual de la string y luego imprímalo.
- Y por último, si el conteo no es igual a cero, imprima ‘)’ igual al número del conteo para equilibrar la string.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // Print balanced and remove // extra brackets from string void balancedString(string str) { int count = 0, i; int n = str.length(); // Maintain a count for opening brackets // Traversing string for (i = 0; i < n; i++) { // check if opening bracket if (str[i] == '(') { // print str[i] and increment count by 1 cout << str[i]; count++; } // check if closing bracket and count != 0 else if (str[i] == ')' && count != 0) { cout << str[i]; // decrement count by 1 count--; } // if str[i] not a closing brackets // print it else if (str[i] != ')') cout << str[i]; } // balanced brackets if opening brackets // are more then closing brackets if (count != 0) // print remaining closing brackets for (i = 0; i < count; i++) cout << ")"; } // Driver code int main() { string str = "gau)ra)v(ku(mar(rajput))"; balancedString(str); return 0; }
Java
// Java implementation of above approach class GFG { // Print balanced and remove // extra brackets from string public static void balancedString(String str) { int count = 0, i; int n = str.length(); // Maintain a count for opening brackets // Traversing string for (i = 0; i < n; i++) { // check if opening bracket if (str.charAt(i) == '(') { // print str.charAt(i) and increment count by 1 System.out.print(str.charAt(i)); count++; } // check if closing bracket and count != 0 else if (str.charAt(i) == ')' && count != 0) { System.out.print(str.charAt(i)); // decrement count by 1 count--; } // if str.charAt(i) not a closing brackets // print it else if (str.charAt(i) != ')') System.out.print(str.charAt(i)); } // balanced brackets if opening brackets // are more then closing brackets if (count != 0) // print remaining closing brackets for (i = 0; i < count; i++) System.out.print(")"); } // Driver Method public static void main(String args[]) { String str = "gau)ra)v(ku(mar(rajput))"; balancedString(str); } }
Python3
# Python implementation of above approach # Print balanced and remove # extra brackets from string def balancedString(str): count, i = 0, 0 n = len(str) # Maintain a count for opening # brackets Traversing string for i in range(n): # check if opening bracket if (str[i] == '('): # print str[i] and increment # count by 1 print(str[i], end = "") count += 1 # check if closing bracket and count != 0 elif (str[i] == ')' and count != 0): print(str[i], end = "") # decrement count by 1 count -= 1 # if str[i] not a closing brackets # print it elif (str[i] != ')'): print(str[i], end = "") # balanced brackets if opening brackets # are more then closing brackets if (count != 0): # print remaining closing brackets for i in range(count): print(")", end = "") # Driver code if __name__ == '__main__': str = "gau)ra)v(ku(mar(rajput))" balancedString(str) # This code is contributed by 29AjayKumar
C#
// C# implementation of above approach using System; class GFG { // Print balanced and remove // extra brackets from string public static void balancedString(String str) { int count = 0, i; int n = str.Length; // Maintain a count for opening // brackets Traversing string for (i = 0; i < n; i++) { // check if opening bracket if (str[i] == '(') { // print str[i] and increment // count by 1 Console.Write(str[i]); count++; } // check if closing bracket // and count != 0 else if (str[i] == ')' && count != 0) { Console.Write(str[i]); // decrement count by 1 count--; } // if str[i] not a closing // brackets print it else if (str[i] != ')') Console.Write(str[i]); } // balanced brackets if opening // brackets are more then closing // brackets if (count != 0) // print remaining closing brackets for (i = 0; i < count; i++) Console.Write(")"); } // Driver Code public static void Main() { String str = "gau)ra)v(ku(mar(rajput))"; balancedString(str); } } // This code is contributed // by PrinciRaj1992
PHP
<?php // PHP implementation of above approach // Print balanced and remove // extra brackets from string function balancedString($str) { $count = 0; $n = strlen($str); // Maintain a count for opening // brackets Traversing string for ($i = 0; $i < $n; $i++) { // check if opening bracket if ($str[$i] == '(') { // print str[i] and increment // count by 1 echo $str[$i]; $count++; } // check if closing bracket and count != 0 else if ($str[$i] == ')' && $count != 0) { echo $str[$i]; // decrement count by 1 $count--; } // if str[i] not a closing brackets // print it else if ($str[$i] != ')') echo $str[$i]; } // balanced brackets if opening brackets // are more then closing brackets if ($count != 0) // print remaining closing brackets for ($i = 0; $i < $count; $i++) echo ")"; } // Driver code $str = "gau)ra)v(ku(mar(rajput))"; balancedString($str); // This code is contributed // by Akanksha Rai ?>
Javascript
<script> // javascript implementation of above approach // Print balanced and remove // extra brackets from string function balancedString( str) { var count = 0, i; var n = str.length; // Maintain a count for opening // brackets Traversing string for (i = 0; i < n; i++) { // check if opening bracket if (str[i] == '(') { // print str[i] and increment // count by 1 document.write(str[i]); count++; } // check if closing bracket // and count != 0 else if (str[i] == ')' && count != 0) { document.write(str[i]); // decrement count by 1 count--; } // if str[i] not a closing // brackets print it else if (str[i] != ')') document.write(str[i]); } // balanced brackets if opening // brackets are more then closing // brackets if (count != 0) // print remaining closing brackets for (i = 0; i < count; i++) document.write(")"); } // Driver Code var str = "gau)ra)v(ku(mar(rajput))"; balancedString(str); // This code is contributed by bunnyram19. </script>
Producción:
gaurav(ku(mar(rajput)))