C#入门算法:判断一串代码中的大括号、中括号和小括号是否成对出现
一、栈是什么?二、使用步骤1.栈的基本操作2.栈的用法实例
文章目录
一、栈是什么?二、使用步骤1.栈的基本操作2.栈的用法实例
一、栈是什么?
堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。
二、使用步骤
1.栈的基本操作
Pop() 移除并返回在 Stack 的顶部的对象
push() 向 Stack 的顶部添加一个对象
peek() 返回在 Stack 的顶部的对象,但不移除它
ToArray() 创建数组并将堆栈元素复制到其中
Contains() 判断一个元素是否在栈中
Clear() 从 Stack 中移除所有的元素。
2.栈的用法实例
//判断字符串中的括号是否成对出现
static void Main(string[] args)
{
string[] exe = { "{", "[", "(", "]", ")", "}", "}" };
IsTrue(exe);
}
static public void IsTrue(string[] strArray)
{
Stack stack = new Stack();
for (int i = 0; i
stack.Push(strArray[i]);
}
else if (strArray[i] == "[")
{
stack.Push(strArray[i]);
}
else if (strArray[i] == "(")
{
stack.Push(strArray[i]);
}
if (stack.Count != 0)
{
if (strArray[i] == ")")
{
stack.Pop();
}
else if (strArray[i] == "]")
{
stack.Pop();
}
else if (strArray[i] == "}")
{
stack.Pop();
}
}
else if (stack.Count == 0)
{
if (strArray[i] == ")")
{
stack.Push(strArray[i]);
}
else if (strArray[i] == "]")
{
stack.Push(strArray[i]);
}
else if (strArray[i] == "}")
{
stack.Push(strArray[i]);
}
}
}
if (stack.Count == 0)
{
Console.WriteLine("字符串中的括号一一对应");
}
else
{
Console.WriteLine("字符串中的括号无法对应");
}
}
|