Grupo
Gestión Dinámica de Memoria en C#
Objectivo
1. Implementa una función que tome una cadena de paréntesis como entrada.
2. Usa una pila o un contador para comprobar si los paréntesis están equilibrados.
3. Devuelve verdadero si los paréntesis están equilibrados y falso si no lo están.
4. Asegúrate de que cada paréntesis de apertura tenga su correspondiente paréntesis de cierre y de que estén correctamente anidados.
5. Prueba la función con diferentes secuencias de paréntesis para verificar su corrección.
En este ejercicio, necesitas implementar una función para comprobar si una secuencia de paréntesis de apertura y cierre está equilibrada.
Ejemplo de ejercicio en C#
Mostrar código C#
using System;
using System.Collections.Generic;
class BalancedParentheses
{
// Function to check if the sequence of parentheses is balanced
static bool IsBalanced(string sequence)
{
Stack stack = new Stack(); // Create a stack to hold opening parentheses
// Loop through each character in the sequence
foreach (char ch in sequence)
{
// If the character is an opening parenthesis, push it onto the stack
if (ch == '(')
{
stack.Push(ch);
}
// If the character is a closing parenthesis
else if (ch == ')')
{
// If the stack is empty, it means there's no matching opening parenthesis
if (stack.Count == 0)
{
return false; // Return false if the parentheses are not balanced
}
// Pop the top element from the stack as it matches the closing parenthesis
stack.Pop();
}
}
// If the stack is empty, all opening parentheses had matching closing parentheses
return stack.Count == 0;
}
static void Main()
{
string sequence = "(()()(()))"; // Example valid sequence
bool result = IsBalanced(sequence); // Check if the sequence is balanced
// Display the result
Console.WriteLine($"Sequence: {sequence}");
Console.WriteLine($"Is the sequence balanced? {result}");
sequence = "(((()"; // Example invalid sequence
result = IsBalanced(sequence); // Check if the sequence is balanced
// Display the result
Console.WriteLine($"Sequence: {sequence}");
Console.WriteLine($"Is the sequence balanced? {result}");
}
}
Output
Sequence: (()()(())))
Is the sequence balanced? True
Sequence: ((((
Is the sequence balanced? False
Código de ejemplo copiado
Comparte este ejercicio de C#