括号平衡(c++题解)

题目描述

在本题中,题目会先给你一个包含小括号() 及中括号 [] 的字串。当字串符合下列条件时我们称它为正确的运算式:

1、 该字串为一个空字串。

2、 如果 A 和 B 都为正确的运算式,则 AB 也为正确的运算式。

3、 如果 A 为正确的运算式,则 (A) 及 [A] 都为正确的运算式。

现在,请你写一支程序可以读入这类字串并检查它们是否为正确的运算式。

输入格式

第一行为正整数 ,代表接下来有  个字符串。

接下来的  行,每行是一个仅含小括号和中括号的字符串(长度不大于 10000)。

输出格式

针对每个输入的括号字符串,如果是正确的运算式,则输出 "Yes",否则输出 "No"。

样例

输入样例
复制4 
([])
(([()])))
([()[]()])()
([)]
输出样例
复制Yes
No
Yes
No

_____________________________________________________________________________

日常发作业题解。 

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

_____________________________________________________________________________

#include 
using namespace std;
int n,idx=0;
string x;
char stk[100005];
void push(char x){
	stk[idx++]=x;
}
int top(){
	return stk[idx-1];
}
void pop(){
	idx--;
}
bool empty(){
	return idx==0;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    	idx=0; //气死我啦,一开始栈没有清空排错排了好久。
    	cin>>x;
    	bool flag=true;
    	for(int j=0;j

你可能感兴趣的:(c++,算法)