博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过栈Stack实现括号匹配的语法检查
阅读量:6674 次
发布时间:2019-06-25

本文共 1516 字,大约阅读时间需要 5 分钟。

在这里插入图片描述

在这里插入图片描述

算法的设计思想:

出现左括弧则进栈;

出现右括弧则首先检测栈是否为空,

若栈空则表明此右括弧多余,表达式不匹配。

否则和栈顶数据比较,若匹配则栈顶出栈。

否则表明表达式不匹配;

最后若栈空且没有做鱼右括弧则匹配正确,否则表明不匹配。

  在这里插入图片描述

class Program    {        static void Main(string[] args)        {            string s = "{(())4}";                       Console.WriteLine(Match(s));                      Console.ReadKey();        }        static bool Match(string s)        {            if (string.IsNullOrEmpty(s))            {              throw new Exception("空的字符串");            }            Stack
stack = new Stack
(); foreach (char temp in s) { switch (temp) { case '[': stack.Push("]"); break; case '(': stack.Push(")"); break; case '{': stack.Push("}"); break; case '}': case ')': case ']': if (temp.Equals(char.Parse(stack.Peek()))) { stack.Pop(); return true; } else { return false; } } } if (stack.Count==0) { return true; } return false; } }

转载地址:http://xdrxo.baihongyu.com/

你可能感兴趣的文章
Eclipse中将tomcat日志输出重定向
查看>>
Ubuntu 14.04安装Nginx1.60
查看>>
神奇犁头草,治疗肿毒效如神
查看>>
ORA-06553: PLS-553: character set name is not recognized, while starting Content Store
查看>>
Watches OpenCart 主题模板 ABC-0088
查看>>
linux iptables 相关应用
查看>>
怎样做好DNS服务器的保护
查看>>
Java对象创建时的初始化顺序
查看>>
linux bash环境变量简单总结
查看>>
JAVA 读取配置文件
查看>>
第二个Sprint冲刺第 七天(燃尽图)
查看>>
ruby 升级1.8.7到1.9.3
查看>>
linux网络配置命令(一)——ifconfig
查看>>
xcode10设置自定义代码快 - Xcode10新功能新内容
查看>>
【BZOJ】4559: [JLoi2016]成绩比较 计数DP+排列组合+拉格朗日插值
查看>>
【vijos】P1448 校门外的树
查看>>
【BZOJ】2440: [中山市选2011]完全平方数
查看>>
二十四种设计模式:原型模式(Prototype Pattern)
查看>>
小程序右侧边栏
查看>>
小白的Python 学习笔记(八)推导式详解
查看>>