括号匹配题目描述假设表达式中允许包含圆括号和方括号两种括号其嵌套的顺序随意如()或[([][])]等为正确的匹配[(])或(或(()))均为错误的匹配本题的任务是检验一个给定的表达式中的括号是否匹配正确输入一个只包含圆括号和方括号的字符串判断字符串中的括号是否匹配匹配就输出“OK”不匹配就输出“Wrong”输入描述一行字符只含有圆括号和方括号个数小于255输出描述匹配就输出一行文本“OK“不匹配就输出一行文本”Wrong”样例输入[(])输出Wrong#includebits/stdc.husingnamespacestd;charst[260];// 栈顶指针 topinttop0;// 1. 栈顶指针往上跳一个top 1;// 2. 加一个数据到栈里面 添加数据intmain(){string s;cins;// [()]// 字符串长度len是4intlens.size();// len 4// cout s[0];//// 循环 0~3,len-1就是3for(inti0;ilen;i){if(s[i][||s[i](){// 进栈// top 加号加号在前、先原来top 0, 加后为1st[top]s[i];}// 配对 [ ]if(s[i]]){// 此时栈顶数据是 [if(st[top][){// 成功了,出栈--top;}else{// 失败了coutWrong;// 提前结束程序return0;}}// 配对 ( )if(s[i])){// 此时栈顶数据是 (if(st[top](){// 成功了,出栈--top;}else{// 失败了coutWrong\n;// 提前结束程序return0;}}}// 判断成功// 栈顶指针指向0 表示空栈 全部配对成功if(top0){coutOK;}else{// 栈内没有空coutWrong\n;}return0;}