1353表达式括号匹配(stack)
【题目描述】
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。
【输入】
一行数据,即表达式。
【输出】
一行,即“YES” 或“NO”。
【输入样例】
2*(x+y)/(1-x)@
【输出样例】
YES
【提示】
【样例输入2】
(25+x)*(a*(a+b+b)@
【样例输出2】
NO
【我的思路】
这道题,一本通上的所有数据都没有出现括号顺序错误。所以,只需要左括号和右括号数量相等就可以了。
【方法一】直接循环【代码如下】
- #include<bits/stdc++.h>
- using namespace std;
- char a[];
- int main()
- {
- int i=,k=,len;
- gets(a);
- len=strlen(a)-;
- for(i=;i<=len;i++)
- {
- if(a[i]=='(')
- k++;
- if(a[i]==')')
- k--;
- }
- if(k==)
- cout<<"YES";
- else
- cout<<"NO";
- return ;
- }
【方法二】用模拟栈来解决【代码如下】
- #include<iostream>
- #include<cstring>
- #include<string>
- #include<cstdio>
- using namespace std;
- char a[];
- int i=,top=;
- int main()
- {
- gets(a);
- int len=strlen(a);
- for (i=; i<len; i++){
- if(a[i]=='('){
- top++;
- }
- if(a[i]==')'){
- if(top>)top--;
- else return ;
- }
- i++;
- }
- if(top!=)cout<<"NO";
- else cout<<"YES";
- return ;
- }

1353表达式括号匹配(stack)的更多相关文章
- 表达式括号匹配(stack.cpp)
[问题描述] 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回 ...
- luoguP1739 表达式括号匹配 x
P1739 表达式括号匹配 题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹 ...
- 栈的应用:表达式括号匹配检测(C)
问题说明: 假设数学表达式中允许包含两种括号:圆括号"()"和方括号"[]",嵌套顺序任意. 正确的嵌套模式:( [ ] ( ) ).[ ( [ ] [ ] ) ...
- P1739_表达式括号匹配(JAVA语言)
思路:刚开始想用stack,遇到'('就push,遇到')'就pop,后来发现其实我们只需要用到栈里'('的个数,所以我们用一个变量统计'('的个数就好啦~ 题目描述 假设一个表达式有英文字母(小写) ...
- 洛谷 P1739 表达式括号匹配
题目链接https://www.luogu.org/problemnew/show/P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为 ...
- 表达式括号匹配(stack)
题目描述 假设一个表达式由英文字母(小写).运算符(+.-.*./)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右括号是否匹配,若匹配,则返回“YES”:否则返回 ...
- 洛谷 P1739 表达式括号匹配【STL/stack/模拟】
题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返 ...
- (栈 注意格式)P1739 表达式括号匹配 洛谷
题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”:否则返 ...
- P1739 表达式括号匹配
题目描述 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”:否则返 ...
随机推荐
- 【MySQL】数据库 --MySQL的安装
本篇教程主要讲解在CentOS 6.5下编译安装MySQL 5.6.14! 1.卸载旧版本: 使用下面的命令检测是否安装有MySQL server <span style="font- ...
- 【NOIP模拟赛】beautiful 乱搞(平衡树)+ST
biubiu~~~ 我用平衡树处理的这道题,然而这种方法还是要看评测姬..... 正解是乱搞....就是枚举每一位数作为中位数,比他小的看做-1比他大的看做1,那么我们从一开始就有了一个绵延的山,我们 ...
- github导入springboot maven项目
1.在GitHub里force喜欢的项目,获取GitHub项目地址,eclipse---import---project from git---clone uri---next---finish,项目 ...
- Ubuntu下安装LNMP之php7的安装并配置Nginx支持php及卸载php
据了解,php7是比之前的版本性能快很多的.http://php.net/get/php-7.2.2.tar.gz/from/a/mirror 安装前也可提前将相关依赖库安装好,或者在安装php时若安 ...
- 使用vue做移动app时,调用摄像头扫描二维码
现在前端技术发展飞快,前端都能做app了,那么项目中,也会遇到调用安卓手机基层的一些功能,比如调用摄像头,完成扫描二维码功能 下面我就为大家讲解一下,我在项目中调用这功能的过程. 首先我们需要一个中间 ...
- 51Nod 1256 求乘法逆元--扩展欧几里德
#include<stdio.h> int exgcd(int a,int b,int &x,int &y) { ) { x=; y=; return a; } int r ...
- nginx重启失败
参考: http://www.bubuko.com/infodetail-1742262.html Starting nginx: nginx: [emerg] bind() to 0.0.0.0:8 ...
- js异步实现checkbox选中
参考:https://blog.csdn.net/long19901216/article/details/51374064 https://blog.csdn.net/hahei2020/artic ...
- udp端口测试连接
udp端口测试连接 http://www.361way.com/nc-udp-port/2949.html
- float和double类型的存储方式
Float double 类型在计算机的存储方式 计算机中只认识10的二进制数,那么该如何存储小数呢? 那么我们先看Floa类型: Float在计算机(32位)中是4个字节的,具体地:第一位为符号位0 ...