Dada una string de expresión exp, escriba un programa para examinar si los pares y los órdenes de “{“, “}”, “(“, “)”, “[“, “]” son correctos en exp.
Ejemplo :
Entrada : exp = “[()]{}{[()()]()}”
Salida : BalanceadaEntrada : exp = “[(])”
Salida : No balanceada
Algoritmo:
- Declara una pila de caracteres S.
- Ahora recorra la string de expresión exp.
- Si el carácter actual es un corchete de inicio ( ‘(‘ o ‘{‘ o ‘[‘ ) entonces empújelo para apilar.
- Si el carácter actual es un corchete de cierre ( ‘)’ o ‘}’ o ‘]’ ) entonces salte de la pila y si el carácter reventado es el corchete de inicio coincidente entonces bien, de lo contrario los corchetes no están balanceados.
- Después de completar el recorrido, si queda algún soporte inicial en la pila, entonces «no está equilibrado»
La imagen de abajo es una ejecución en seco del enfoque anterior:
A continuación se muestra la implementación del enfoque anterior:
Javascript
<script> // Javascript program for checking // balanced brackets // Function to check if brackets are balanced function areBracketsBalanced(expr) { // Using ArrayDeque is faster // than using Stack class let stack = []; // Traversing the Expression for(let i = 0; i < expr.length; i++) { let x = expr[i]; if (x == '(' || x == '[' || x == '{') { // Push the element in the stack stack.push(x); continue; } // If current character is not opening // bracket, then it must be closing. // So stack cannot be empty at this point. if (stack.length == 0) return false; let check; switch (x){ case ')': check = stack.pop(); if (check == '{' || check == '[') return false; break; case '}': check = stack.pop(); if (check == '(' || check == '[') return false; break; case ']': check = stack.pop(); if (check == '(' || check == '{') return false; break; } } // Check Empty Stack return (stack.length == 0); } // Driver code let expr = "([{}])"; // Function call if (areBracketsBalanced(expr)) document.write("Balanced "); else document.write("Not Balanced "); // This code is contributed by rag2127 </script>
Balanced
Complejidad de Tiempo: O(n)
Espacio Auxiliar: O(n) para pila.
¡ Consulte el artículo completo sobre Verificación de paréntesis equilibrados en una expresión (bien formada) usando Stack para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA