华师一附中OI组

标题: P1739 表达式括号匹配 [打印本页]

作者: admin    时间: 2018-9-28 16:18
标题: P1739 表达式括号匹配
https://www.luogu.org/problemnew/show/P1739

题目描述
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。

输入输出格式
输入格式:
一行:表达式

输出格式:
一行:“YES” 或“NO”

输入输出样例
输入样例#1:
2*(x+y)/(1-x)@



输出样例#1:
YES
输入样例#2:
(25+x)*(a*(a+b+b)@
输出样例#2:
NO
说明
表达式长度小于255,左圆括号少于20个
作者: JASONZHU    时间: 2018-10-4 09:22
  1. #include<iostream>
  2. using namespace std;
  3. char c;
  4. int z,y;
  5. int main()
  6. {   
  7.     do
  8.     {
  9.         cin>>c;
  10.         if (c=='(') z++;
  11.         if (c==')') y++;
  12.         if (y>z)
  13.         {
  14.             cout<<"NO";
  15.             return 0;
  16.         }
  17.     }
  18.     while (c!='@');
  19.     if (z==y) cout<<"YES";
  20.     else cout<<"NO";
  21.     return 0;
  22. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2