括号匹配问题
2016-05-29 21:35
288 查看
假设表达式中包含三种括号:圆括号、方括号和花括号,它们可以相互嵌套,如({ }[ ]([{ }]))等均为正确的格式,而{]}等为不正确的格式。以下为算法程序:
/*括号匹配问题*/ #include <stdio.h> #include <stdlib.h> int main() { int count[3] = { 0 }; char ch; while ((ch = getchar()) != EOF) { switch (ch) { case '(': count[0]++; break; case '[': count[1]++; break; case '{': count[2]++; break; case ')': if (count[0] == 0) { printf("匹配失败!\n"); system("pause"); return 0; } count[0]--; break; case ']': if (count[1] == 0) { printf("匹配失败!\n"); system("pause"); return 0; } count[1]--; break; case '}': if (count[2] == 0) { printf("匹配失败!\n"); system("pause"); return 0; } count[2]--; break; } } if (count[0] == 0 && count[1] == 0 && count[2] == 0) printf("匹配成功!\n"); else printf("匹配失败!\n"); system("pause"); return 0; }
相关文章推荐
- 折半查找------在一个升序的有序数组中查找某个具体的数字
- 三子连珠游戏
- 全局变量 静态变量 局部变量分析
- 单链表的各种操作
- 替换字符串中的空格
- 一组数中,只有两个数只出现了奇数次,其他所有数都是成对出现的,请找出那两个数
- 冒泡排序函数,可以给任意类型的数据排序,比如整形数组,字符数组,字符串数组等
- 快速排序函数的比较函数
- 二叉树 的先序 中序、后序遍历、层次遍历以及树状打印等操作
- C语言利用结构体实现一个通讯录
- C语言的注释与C++注释的转换
- 两个链表的合并
- 单链表的操作
- 单继承与多继承中的虚函数表和虚函数指针
- C++虚继承中的对象内存布局
- 大道至简阅读笔记01
- shell(十一)切割文件
- [DP] BZOJ 1270 [BeijingWc2008]雷涛的小猫
- HttpClient get请求在HttpResponse中无法获得Location的问题
- 循环