1 条题解

  • 2

    典型的栈,注意一些细节(见代码注释)。

    #include<bits/stdc++.h>
    using namespace std;
    stack <char>s;
    int main(){
    	string tmp;
    	cin>>tmp;
    	for(int i=0;i<tmp.size();i++){
    		if(tmp[i]=='('){//如果是左括号,入栈
    			s.push(tmp[i]);
    		}else if(tmp[i]==')'){
    			if(s.empty()){//如果没有配对的括号
    				puts("NO");
    				return 0;
    			}
    			if(s.top()=='(')	s.pop();//如果能配对,就弹出栈顶
    		}
    	}
    	if(s.empty())	puts("YES");//如果全都刚好配对
    	else	puts("NO");
    	return 0;
    }
    

    信息

    ID
    749
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者