括号匹配问题(二)
【问题描述】
字符串中只含有括号(0,[]判断输入的字符串 中括号是否匹配。如果括号有互相包含的形式,从内到外必须是(0,[]例如。输入: [)]输出:YES ,而输入([]),([ )]都应该输出NO。
输入: 一个由括号组成的长度不超过255的字符串(前括号的数量大于等于后括号数量)。
输出: YES或NO。
【输入样例】
()()[][]
【输出标例】
YES
#include<iostream> #include<cstring> using namespace std; char stack[100], a[100]; int top=0; void push(char x){ if(top<strlen(a)){ top++; stack[top]=x; cout<<"入栈顺序:"<<stack[top]<<" "<<endl; return; } } void pop(){ if(top>0){ cout<<"出栈顺序:"<<stack[top]<<" "<<endl; top--; return; } } int getTop(){ return top; } int main(){ cin>>a; // [()] for(int i=0; i<strlen(a); i++){ // 入栈操作: if(a[i]=='['){ if(stack[top]!='('){ push(a[i]); }else{ cout<<"no"; return 0; } } else if(a[i]=='('){ push(a[i]); } // 出栈操作: if(a[i]==')'&&stack[top]=='('||a[i]==']'&&stack[top]=='['){ pop(); } } if(getTop()==0){ cout<<"yes"; }else{ cout<<"no"; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理