数据结构实验之栈四:括号匹配
2015-02-02 20:49
274 查看
Description
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
Input
输入数据有多组,处理到文件结束。
Output
如果匹配就输出“yes”,不匹配输出“no”
Sample Input
Sample Output
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
Input
输入数据有多组,处理到文件结束。
Output
如果匹配就输出“yes”,不匹配输出“no”
Sample Input
sin(20+10){[}]
Sample Output
yes
no
#include <iostream> #include <cstring> #include <cstdio> #include <stack> using namespace std; int main() { char a[51]; while(gets(a)) { stack<char>s; int i,len,coun = 0; int flag; len= strlen(a); for(i=0;i<len;i++) { if(a[i]=='('||a[i]=='{'||a[i]=='['||a[i]==')'||a[i]=='}'||a[i]==']') coun++; //计算括号总个数 if(a[i]=='('||a[i]=='{'||a[i]=='[') { s.push(a[i]); } else if(a[i] == ')') { if(s.empty()) { flag = 0; break; } else { if(s.top() == '(') { s.pop(); coun -= 2; } else { flag = 0; break; } } } else if(a[i] == ']') { if(s.empty()) { flag = 0; break; } else { if(s.top() == '[') { s.pop(); coun -= 2; } else { flag = 0; break; } } } else if(a[i] == '}') { if(s.empty()) { flag = 0; break; } else { if(s.top() == '{') { s.pop(); coun -= 2; } else { flag = 0; break; } } } } if(coun == 0) // 比如 {() flag = 1; else flag = 0; if(flag) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0; }
相关文章推荐
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 2134数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配(java实现)
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配 分类: 栈和队列 2015-06-18 17:06 13人阅读 评论(0) 收藏
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配