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

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

  

NYOJ-2 括号配对问题 -- 数据结构_堆栈的更多相关文章

  1. nyoj 2 括号配对问题 栈

    nyoj 2 括号配对问题 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=2 思路: 栈:'(' '['入栈,遇到 ']' ')'出栈 ...

  2. NYOJ之括号配对问题

    括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述     现在,有一行括号序列,请你检查这行括号是否配对. 输入     第一行输入一个数N(0<N&l ...

  3. nyoj 2 括号配对问题

    括号配对问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0& ...

  4. nyoj 2 括号配对问题(stack)

    括号配对问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0& ...

  5. Python 数据结构_堆栈

    目录 目录 堆栈 堆栈 堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 . 在堆栈中, push 和 pop 是常用术语: push: 意思是 ...

  6. NYOJ 2 括号配对问题 (模拟)

    题目链接 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S ...

  7. nyoj 2 括号配对问题水

    #include<stdio.h> #include<stack> #include<string.h> #define N  11000 using namesp ...

  8. nyoj 题目2 括号配对问题

    描述 今天发现了nyoj,如获至宝.准备开刷. 括号配对问题 现在,有一行括号序列,请你检查这行括号是否配对.   输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的 ...

  9. 括号配对问题_栈<stack>

    问题 A: 括号配对问题 时间限制: 3 Sec  内存限制: 128 MB提交: 3  解决: 2[提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行 ...

随机推荐

  1. apache commons vfs 文件夹监控

    package test.vfs; import java.io.File; import org.apache.commons.logging.Log; import org.apache.comm ...

  2. eclipse项目持续报红解决

    1.tomcat 同步,点击publish: 2.clear项目 3.项目报红,Maven --->UpdateProject 4.pom.xml需要更新,下载最新jar包,附图:

  3. [Hibernate] - Annotations - One To Many

    Hibernate使用Annotation的一对多: hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8&q ...

  4. Angular学习(1)

    天天都是hello world,老子玩1+1. 最简单的例子,见证无聊的时刻: <!DOCTYPE html> <html> <head> <title> ...

  5. 【Andorid开发框架学习】之Mina开发之客户端开发

    昨天我们讲到了Mina的基本知识点.如果还有不懂得同学可以看一下我昨天的博客.http://www.cnblogs.com/getherBlog/p/3934927.html今天我着重来讲一下基于Mi ...

  6. 【Spring-AOP-学习笔记-7】@Around增强处理简单示例

    阅读目录 简单介绍 章节1:项目结构 章节2:定义切面类.连接点注解类 章节3:为待增强的方法--添加注解声明 章节4:AspectJ配置文件 章节5:测试类xxx 章节6:测试结果 Around 增 ...

  7. 【Struts2学习笔记-6--】Struts2之拦截器

    简单拦截器的使用 拦截器最基本的使用: 拦截方法的拦截器 拦截器的执行顺序 拦截结果的监听器-相当于 后拦截器 执行顺序: 覆盖拦截器栈里特定拦截器的参数 使用拦截器完成-权限控制 主要完成两个功能: ...

  8. 一个android的各种控件库

    在这里 https://github.com/Trinea/android-open-project 很多的listview,非常棒

  9. encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)

    encodeURIComponent编码后java后台的解码 (AJAX中文解决方案) 同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题. 原来 ...

  10. 怎样减少FLASH影片文件过大——绝对好用

    网站建设中怎样减少FLASH影片文件过大 一,制作前的处理  1声音(mp3):   GoldWave中打开需要处理的mp3,然后把它另存为---在最下一栏的属性中选择较低的字节数,例如,本来的mp3 ...