以前做过的,现在整理一下,主要是堆栈的使用

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;
}

  

最新文章

  1. CentOS安装gitlab,gerrit,jenkins并配置ci流程
  2. webpack初入
  3. jvm性能参数与调优
  4. IOS第13天(2,私人通讯录,plist存储,偏好设置,归档)
  5. Spring3系列6 - Spring 表达式语言(Spring EL)
  6. LVS使用整理(1)
  7. static in C/C++
  8. 史上最全APP推广渠道
  9. QQ上传大文件为什么这么快
  10. Linux chmod命令修改文件与文件夹权限命令代码
  11. JDBC增强
  12. PS大头照的背景
  13. Delphi XE7 Update1修正列表
  14. &lt;C++Primer&gt;第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
  15. 基于angular2x+ng-bootstrap构建后台管理系统界面(干货)
  16. Vue v-for循环添加表单v-model不重复变动的注意事项!
  17. remove-weknow-ac from mac chrome
  18. 材料订单不在IN_MO或者IN_SCFHEADER中
  19. 【转】SAP HANA学习资料大全[非常完善的学习资料汇总]
  20. CMD命令下访问Oracle数据库

热门文章

  1. Android记录11-控制ExpandableListView展开和关闭
  2. Asp.net中全局缓存的几种方式
  3. 动态代理到基于动态代理的AOP
  4. Spring boot配合Spring session(redis)遇到的错误
  5. eclipse debug小技巧
  6. webstorm配置nodejs,bower,git,github
  7. AWS控制台改英文
  8. [Vue]学习中遇到的疑点
  9. PLSQL_性能优化系列15_Oracle Explain Plan解析计划解读
  10. POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)(转)