P1739 表达式括号匹配

题目如下:

 思路:

1.考虑开头就是) 肯定NO

2.每次输入一个数字一定是左括号大于等于右括号,否则NO

3.其余就是左右括号数目相等

代码如下:

#include<cstdio> 
#include<iostream>
using namespace std;
int main(){
    char a[1000];
    int i=0;
    int c=0,d=0;
    while(1) {
    scanf("%c",&a[i]);    
    if(a[i]=='@')
    break;
    if(a[0]==')')
    {
        cout<<"NO";
        return 0;
    }
    if(a[i]=='(')
    c++;
    if(a[i]==')')
    d++;
    if(d>c)
    {
        cout<<"NO";
        return 0;
    }
    i++;
    }
//    cout<<c<<"  "<<d<<endl;
    if(c!=d)
    cout<<"NO";
    else
    cout<<"YES";
    return 0;
}
//)(a+1)*(a+2)(@
//NO 
//(a*2*3+1*2+3)+(3*2)+(1*2))1*1(@
//NO
//(0)*(2+2)*)3+4((3+10)@
无聊就学习 反正没事干
原文地址:https://www.cnblogs.com/miao-xixixi/p/13100900.html