当前位置: 首页 > news >正文

判断括号的匹配性的一种算法

int syntax_check(const char *string)
{
const char *src = string;
int total = 0;
int flag = 0;
while (*src) {
switch (*src) {
case '{': //如果是正括号,只管将计数器递加,因为“可能”后面会将它递减的,未来是未决的
total++;
flag = 1;
break;
case '}':
if (flag)
return -1;
total--;
break;
default:
flag = 0;
break;
}
if (total < 0) { //只要计数器小于0了,就说明已经多了一个反括号,由于是向后这一个方面扫描的,所以不能指望再有正括号与之抵消了
break;
}
*src ++;
}
return total;
}

相关文章:

  • 焦点图下面的索引小圆环
  • java虚拟机的启动实例--eclipse的方式
  • 本地方法中printf如何传给java--java系统级命名管道
  • OUYA游戏开发核心技术剖析大学霸内部资料
  • 解决windows 10 9926 中vmware安装的虚拟机无法桥接上网的问题
  • 字符设备驱动程序
  • html中#include file的使用方法
  • 天龙客户端的ResourceManager
  • 我想改了我的音箱
  • sql server 中引號嵌套
  • jsfDemo
  • 第二章
  • 【转】风雨20年:我所积累的20条编程经验
  • 模拟银行账户汇款操作(并发控制)
  • .net 无限分类
  • 《深入 React 技术栈》
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angularjs之国际化
  • CAP 一致性协议及应用解析
  • HTTP 简介
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JS+CSS实现数字滚动
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • XML已死 ?
  • 闭包--闭包作用之保存(一)
  • 从PHP迁移至Golang - 基础篇
  • 第2章 网络文档
  • 前言-如何学习区块链
  • 新书推荐|Windows黑客编程技术详解
  • k8s使用glusterfs实现动态持久化存储
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #、%和$符号在OGNL表达式中经常出现
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)STL算法之遍历容器
  • (九)信息融合方式简介
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (一)RocketMQ初步认识
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NetCore 如何动态路由
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • .ui文件相关
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Android]使用Git将项目提交到GitHub
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [CSS] 点击事件触发的动画
  • [HOW TO]怎么在iPhone程序中实现可多选可搜索按字母排序的联系人选择器
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引
  • [IE编程] WebBrowser控件中设置页面的缩放