赞
踩
以前总说自己会栈,可是一到紧要关头,啥也想不起来,说到底还是不熟的原因,没有自己的体会在其中,是不能熟练应用的!
栈:栈是一种特殊的线性表,其插入操作和删除操作限定在表的一端进行,这一段被称为栈顶(top),相对的另一端则称为栈底(bottom),插入操作被称为压栈(push),删除操作则为推栈(pop)。栈的特点为先进后出。
括号序列
来源:牛客网
给出一个仅包含’[’,’]’,’(’,’)’,’{’,’}'六种字符的括号序列,判断其是否合法。
1空串是一个合法的括号序列
2如果A, B 都是合法的括号序列,那么AB也是合法的括号序列
3如果A是合法的括号序列,(A) , [A], {A}都是合法的括号序列
#include <bits/stdc++.h> using namespace std; char str[1000001],stk[1000001]; int main() { cin>>str; int n=strlen(str); int t=0; for(int i=0;i<n;i++) { if(t==0) stk[t++]=str[i]; else if(str[i]=='('||str[i]=='['||str[i]=='{') stk[t++]=str[i]; if(str[i]==')'&&stk[t-1]=='('&&t!=0) t--; else if(str[i]==']'&&stk[t-1]=='['&&t!=0) t--; else if(str[i]=='}'&&stk[t-1]=='{'&&t!=0) t--; } if(t==0) printf("Yes"); else printf("No"); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。