数据结构实验之栈与队列四:括号匹配
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
Input
输入数据有多组,处理到文件结束。
Output
如果匹配就输出“yes”,不匹配输出“no”
Sample Input
sin(20+10) {[}]
Sample Output
yes no
提示:本题所用到的知识点主要是栈的操作,当遇到左括号就入栈,再判断遇到右括号时栈顶元素是不是左括号,
如果是左右括号都出栈,其他元素也出栈,当栈为空时,即可判断左右括号匹配。如果不空,即为不匹配。
代码实现如下(g++):
#include <bits/stdc++.h> using namespace std; int main() { stack<int>t; char a[110]; char b[110]; int i,top; while(gets(a))//注意这里用scanf和cin应该都不对 { top=-1; for(i=0;a[i]!='