首先我们先了解一下这一道水题:
?
【问题描述】
?
给你一个只有小括号和中括号和大括号的括号序列,问该序列是否合法。
?
【输入格式】
一行一个括号序列。
?
【输出格式】
如果合法,输出OK,否则输出Wrong。
?
【样例输入】
[(])
?
【样例输出】
Wrong
?
【数据范围与规定】
对于的数据,序列长度不超过1000。
?
解析:
关于这种括号匹配的题,首先要想到的是通过 stack 来进行做,而关于 stack 本博客之前讲过,
这道题便可以说是 stack 的一个模板题…这里介绍两种做法…
?
方法一: 用数组进行模拟栈,自己做一个手动栈,时间上可能会比 STL库中提供的栈会快一些…
?
1 #include 2 #include 3 4 using namespace std; 5 6 char s[1005], z[1005]; 7 8 int size; 9 10 int main(){11 scanf(\”%s\”,s);12 int l = strlen(s);13 size++;14 z[size] = s[1];15 for (int i = 2; i
还没有评论,来说两句吧...