括号配对问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
 
描述
现在,有一行括号序列,请你检查这行括号是否配对。
 
输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[", "]", "(", ")" 四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes
思路:括号匹配问题,读取到左边的括号,入栈,读取到右边的从栈顶拿出进行匹配,失败即为不匹配的串,否则继续处理
#include <iostream>
#include <string>
using namespace std; struct stack{
int num;
string str;
}; int main(){ int n;
cin>>n;
string ss;
stack a;
int i;
while(n--){
cin>>ss;
a.num = ;
a.str = "";
if (ss.length()%!=)
{
cout<<"No"<<endl;
}else
{
if (ss[]!='[' && ss[]!='(')
{
cout<<"No"<<endl;
}
else
{
for (i = ; i < ss.length(); i++)
{
if (ss[i]=='('||ss[i]=='[')
{
a.str = a.str + ss[i];
a.num++;
}
else if (ss[i]==')')
{
if (a.str[a.num-]=='(')
{
a.num--;
string temp = "";
for (int j = ; j < a.num ; j++)
{
temp += a.str[j];
}
a.str = temp;
}
}
else if (ss[i]==']')
{
if (a.str[a.num-]=='[')
{
a.num--;
string temp = "";
for (int j = ; j < a.num ; j++)
{
temp += a.str[j];
}
a.str = temp;
}
}
}
if (i==ss.length() && a.num==)
{
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
} } } return ;
}

【ACM】括号配对问题 - 栈的更多相关文章

  1. nyoj 2 括号配对问题 栈

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

  2. Num 15: NYOJ: 题目0002 : 括号配对问题 [ 栈(stack) ]

    原题连接      首先要了解有关栈的一些基本知识,即:      什么是栈,栈有什么作用:        1.什么是栈: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

  3. ACM 括号配对问题

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

  4. ACM:UESTC - 649 括号配对问题 - stack

      UESTC - 649  括号配对问题 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu ...

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

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

  6. 括号配对问题--nyoj-2(栈)

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

  7. 【ACM】nyoj_2_括号配对问题_201308091548

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

  8. NYOJ之括号配对问题

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

  9. hdoj 2 括号配对问题【数组模拟实现+STL实现】

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

随机推荐

  1. 基于无锁的C#并发队列实现

    最近开始学习无锁编程,和传统的基于Lock的算法相比,无锁编程具有其独特的优点,Angel Lucifer的关于无锁编程一文对此有详细的描述. 无锁编程的目标是在不使用Lock的前提下保证并发过程中共 ...

  2. oracle隐含参数的查看与修改

    v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的. 1.   可以通过如下方式查询当前实例的所有隐含参数: col name for a30 ...

  3. File:isctype.c Line 68

    刚接触DSP,拿来别人的代码,编译时,发现如下错误: 百思不得琪姐,一番调查之后,发现自己的工程worksapce中有中文路径,怎一个fuck了得.

  4. Python:代码单元、代码点介绍

    转于:https://www.cnblogs.com/runwulingsheng/p/5106078.html 博主:你是那天边突然划过的一道闪电 代码点:指编码表(比如Unicode)中某个字符的 ...

  5. strust2.2.3版本启动报错struts-plugin.xml:8:162

    我用的是struts-2.2.3,开始把全部的jar包都放进去了,可是一直报 信息: Parsing configuration file [struts-plugin.xml] 2011-6-11 ...

  6. Flask11 Session、CSRF、注销session、利用端点自动跳转

    1 怎么对存储的cookie数据进行加密 利用response对象去设置cookie时,存储到浏览器中的cookie数据都是明文的,容易被一些计算机爱好者利用:利用session存的cookie数据可 ...

  7. Flask09 原始输出、转义、XSS攻击、过滤器???

    1 怎么在jinja模板中原始输出模板语法 1.1 用双引号引起来后放到 {{ }} 中 例如 {{ "{{}}" }} 输出 1.2 利用raw 例如 {% raw %} {% ...

  8. 4、linux-grep awk sed and cuf sort uniq join

    1.grep 1.1 grep [-invc] [--color=auto] '搜寻字符串' filename选项与参数:-i :忽略大小写的不同-n :顺便输出行号-v :显示没有 '搜寻字符串' ...

  9. Entity Framework Code-First(6):Database Initialization

    Database Initialization: We have seen that Code First creates a database automatically in the Simple ...

  10. 19. CTF综合靶机渗透(十二)

    靶机说明: 靶机主题来自美剧<黑客军团> 本次靶机有三个flag,难度在初级到中级,非常适合新手训练学习,不需要逆向技术,目标就是找到三个key,并且拿到主机root权限. 渗透过程: 本 ...