假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。
输入格式:
一行:表达式
输出格式:
一行:“YES” 或“NO”
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 6 using namespace std; 7 8 char s[300]; 9 10 bool pp(char s[300]) 11 { 12 int top=0,i=0; 13 while(s[i]!=0) 14 { 15 if(s[i]=='(') 16 top++; 17 if(s[i]==')') 18 if(top>0) 19 top--; 20 else 21 return 1; 22 i++; 23 } 24 if(top!=0) 25 return 1; 26 else 27 return 0; 28 } 29 30 int main() 31 { 32 scanf("%s",s); 33 if(pp(s)==0) 34 cout<<"YES"; 35 else 36 cout<<"NO"; 37 return 0; 38 }