Paréntesis Curso de Programación C# Sharp

Lección:

Gestión Dinámica de Memoria


Ejercicio:

Paréntesis 12


Objetivo:

Implementar una función para comprobar si una secuencia de paréntesis abierto y cerrado está equilibrada, es decir, si cada paréntesis abierto corresponde a uno cerrado y además están bien anidados.

Por ejemplo:

(()()(())) OK
(((() ERROR


Código:

using System;
using System.Collections;
namespace Expression
{
    class Program
    {
        static void Main(string[] args)
        {
            string expresion = "()()()()()()";
            bool expresionMal = false;

            Stack pila = new Stack();

            for (int i = 0; i < expresion.Length; i++)
            {
                if (expresion[i] == '(')
                    pila.Push(expresion[i]);
                else if (expresion[i] == ')')
                    if (pila.Count > 0)
                        pila.Pop();
                    else
                        expresionMal = true;
            }

            if (expresionMal)
                Console.WriteLine("ERROR");
            else
                Console.WriteLine("OK");

            Console.ReadLine();
        }
    }
}