Paréntesis Curso de Programación Visual Basic

Lección:

Gestión Dinámica de Memoria


Ejercicio:

Paréntesis 7


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:

Imports System
Imports System.Collections
Namespace Expression
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Dim expresion As String = "()()()()()()"
            Dim expresionMal As Boolean = False
            Dim pila As Stack = New Stack()

            For i As Integer = 0 To expresion.Length - 1

                If expresion(i) = "("c Then
                    pila.Push(expresion(i))
                ElseIf expresion(i) = ")"c Then

                    If pila.Count > 0 Then
                        pila.Pop()
                    Else
                        expresionMal = True
                    End If
                End If
            Next

            If expresionMal Then
                Console.WriteLine("ERROR")
            Else
                Console.WriteLine("OK")
            End If

            Console.ReadLine()
        End Sub
    End Class
End Namespace