1461: 【入门】括号匹配(1486)
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:29
解决:15
题目描述
输入一个由()[]四种符号构成的字符串。判断其中的括号是否匹配,是,就输出yes,否则输出no。
比如:输入“([])”、“([()])”、“[((()))]”、“()[][][]()[]”这几个字符串(双引号内部的内容),我们都算是匹配的。
再比如:输入“([)”、“([)]”、“([(]))”这几个字符串,我们都认为是不匹配的。
比如:输入“([])”、“([()])”、“[((()))]”、“()[][][]()[]”这几个字符串(双引号内部的内容),我们都算是匹配的。
再比如:输入“([)”、“([)]”、“([(]))”这几个字符串,我们都认为是不匹配的。
输入
一个由()[]四种符号构成的字符串
输出
如果匹配,请输出yes,如果不匹配,请输出no
样例输入 复制
([])
样例输出 复制
yes
提示
#include<bits/stdc++.h> using namespace std; stack<char> s; string t; int i; int main(){ cin>>t; s.push('*'); for(i=0;i<t.size();i++) { if(t[i]=='('||t[i]=='[') { s.push(t[i]); }else{ if(t[i]==')'&&s.top()=='('||t[i]==']'&&s.top()=='['){ s.pop(); }else{ cout<<"no"; return 0; } } } if (s.size()==1) { cout<<"yes"; }else { cout<<"no"; } return 0; }