CSharp 括号匹配 源代码
时间: 2023-10-23 15:08:46 浏览: 42
以下是一个简单的 C# 括号匹配程序的源代码:
```
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
if (IsValid(input))
{
Console.WriteLine("Valid");
}
else
{
Console.WriteLine("Invalid");
}
}
static bool IsValid(string input)
{
Stack<char> stack = new Stack<char>();
foreach (char c in input)
{
if (c == '(' || c == '[' || c == '{')
{
stack.Push(c);
}
else if (c == ')' || c == ']' || c == '}')
{
if (stack.Count == 0)
{
return false;
}
char top = stack.Pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{'))
{
return false;
}
}
}
return stack.Count == 0;
}
}
```
该程序使用了一个 `Stack` 来存储左括号。当遇到右括号时,程序会弹出左括号并检查是否匹配。如果左括号和右括号不匹配,程序会返回 `false`,表示该字符串不是一个有效的括号序列。如果最后 `Stack` 中还有剩余的左括号,也表示该字符串不是一个有效的括号序列。