华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1143|回复: 1
打印 上一主题 下一主题

P1739 表达式括号匹配

[复制链接]

738

主题

1485

帖子

5422

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5422
跳转到指定楼层
楼主
发表于 2018-9-28 16:18:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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个
回复

使用道具 举报

5

主题

42

帖子

182

积分

注册会员

Rank: 2

积分
182
沙发
发表于 2018-10-4 09:22:24 | 只看该作者
  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. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-12-26 13:01 , Processed in 0.156866 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表