NYOJ-2 括号配对问题 -- 数据结构_堆栈
2024-10-16 14:43:57
以前做过的,现在整理一下,主要是堆栈的使用
1.碰到左括号就入栈,碰到右括号就从栈里弹出一个和当前比配,匹配失败就肯定是NO了;
2.如果右括号弹栈的时候栈空,则说明之前没有和右括号匹配的左括号了,这结果也是NO;
3.如果字符串处理完了栈里面还有符号,结果为NO;
如果处理到最后都没有出现NO的情况,则输出YES;
注意两种括号要区别开
#include<iostream>
#include<stack>
#include<stdio.h>
using namespace std; stack<char> stack_ch; int main()
{
int num;
char ch;
int flag;
cin>> num;
getchar();
while(num--)
{
flag = 0;
while(!stack_ch.empty ())
{
stack_ch.pop();
}
while((ch = getchar()) != '\n')
{
if(ch == '[')
stack_ch.push (ch);
else if(ch == '(')
stack_ch.push (ch);
else if(ch == ']')
{
if(stack_ch.empty())
flag =1 ;
else if(stack_ch.top() == '[')
stack_ch.pop ();
else
flag = 1;
}
else if(ch == ')')
{
if(stack_ch.empty ())
flag = 1;
else if(stack_ch.top() == '(')
stack_ch.pop();
else
flag = 1;
}
}
if(flag == 1)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
}
return 0;
}
最新文章
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
- webpack初入
- jvm性能参数与调优
- IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)
- Spring3系列6 - Spring 表达式语言(Spring EL)
- LVS使用整理(1)
- static in C/C++
- 史上最全APP推广渠道
- QQ上传大文件为什么这么快
- Linux chmod命令修改文件与文件夹权限命令代码
- JDBC增强
- PS大头照的背景
- Delphi XE7 Update1修正列表
- <;C++Primer>;第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
- 基于angular2x+ng-bootstrap构建后台管理系统界面(干货)
- Vue v-for循环添加表单v-model不重复变动的注意事项!
- remove-weknow-ac from mac chrome
- 材料订单不在IN_MO或者IN_SCFHEADER中
- 【转】SAP HANA学习资料大全[非常完善的学习资料汇总]
- CMD命令下访问Oracle数据库
热门文章
- Android记录11-控制ExpandableListView展开和关闭
- Asp.net中全局缓存的几种方式
- 动态代理到基于动态代理的AOP
- Spring boot配合Spring session(redis)遇到的错误
- eclipse debug小技巧
- webstorm配置nodejs,bower,git,github
- AWS控制台改英文
- [Vue]学习中遇到的疑点
- PLSQL_性能优化系列15_Oracle Explain Plan解析计划解读
- POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)(转)