1476: 括号括号

时间限制: 3 Sec 内存限制: 128 MB

提交: 305 解决: 61 统计

题目描述

小明今年上大学,在大学里发现有很多同学都女朋友,两人整天都在一起腻歪,小明看到后感觉很孤单,现在,给你一行括号序列,你来判断一下其中的括号是否配对。

输入

多组输入,每一组第一行输入一个数T(0<<N≤≤100),表示有T组测试数据。后面的T行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[", "]", "(", ")" 四种字符

输出

每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No。

样例输入

3
[(])
(])
([[]()])

样例输出

No
No
Yes

思路

两个循环,i从左往右遍历,j从右往左遍历,当i>=j的时候停止,如果遇到能匹配的括号,将这两个括号变成别的符号,当循环结束后统计括号的个数或者统计不是括号的个数(刚才改变成的符号)。如果括号数为0或者符号数为l,输出“Yes”

AC代码

emmmmm,下面这个代码是错的,数据太水了,就AC了ヽ( ̄▽ ̄)ノ。真正的AC代码在最后

#include<bits/stdc++.h>
#define ll long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
const int maxn=1e6+10;
using namespace std;
char ch[maxn];
int main()
{
int n;
while(~scanf("%d",&n))
{
while(n--)
{
scanf("%s",ch);
int l=strlen(ch);
if(l%2)
printf("No\n");
else
{
int flag=0;
for(int i=0;i<l;i++)
{
for(int j=l-1;j>=0;j--)
{
if(i>=j)
break;
if(ch[i]=='('||ch[i]=='[')
{
if((ch[i]=='('&&ch[j]==')')||(ch[i]=='['&&ch[j]==']'))
{
if((j-i)%2)
{
ch[i]='!';
ch[j]='!';
}
else
continue;
}
}
}
}
for(int i=0;i<l;i++)
{
if(ch[i]=='!')
flag++;
}
if(flag==l)
printf("Yes\n");
else
printf("No\n");
}
}
}
return 0;
}

这个才是AC代码

#include<iostream>
#include<stack>
#include<string>
#include <stdio.h>
using namespace std;
bool judge(string str)
{
stack<char>S;
while(!S.empty())
S.pop();
int len=str.length();
int i;char temp;
for(int i=0;i<len;i++)
{
if(str[i]=='('||str[i]=='[')
S.push(str[i]);
else
{
if(S.empty()) return false;
temp=S.top();
S.pop();
switch(str[i])
{
case ')':
{
if(temp!='(') return false;
continue;
}
case ']':
{
if(temp!='[') return false;
continue; }
}
}
}
if(!S.empty()) return false;
return true;
}
int main()
{
int ntest;
while(scanf("%d",&ntest)!=EOF){
string str;
while(ntest--)
{
cin>>str;
if(judge(str))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}
return 0;
}

HPU 1476: 括号括号的更多相关文章

  1. LeetCode 20. 有效的括号( 括号配对 )

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...

  2. 2018-01-12 Antlr4添加中文变量赋求值,括号,各种问题

    中文编程知乎专栏原文地址 例程(更多测试用例在此): 基数=100 基数×(基数+1)÷2 => 求值为5050 续上文Antlr4实现数学四则运算, 修改的语法规则部分: 程序: 声明+; 声 ...

  3. 【LeetCode】22. Generate Parentheses 括号生成

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:括号, 括号生成,题解,leetcode, 力扣,Pyt ...

  4. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

  5. python实现计算器

    计算器功能 实现优先级解析,加减乘除四则运算 自定义小数位精度 实现思想: 先找到最里层括号,根据乘除,加减优先级,调用写好的乘除.加减运算函数算出括号内总值,再将原括号式用所得值替换,此过程循环进行 ...

  6. less简介

    Less是一种动态的样式语言.Less扩展了CSS的动态行为,比如说,设置变量(Variables).混合书写模式(mixins).操作(operations)和功能(functions)等等,最棒的 ...

  7. 1526. Martian Plates

    http://acm.timus.ru/problem.aspx?space=1&num=1526 题目大意: 可以从n个碟子中任选一个放在桌子上(不断往上放),也可以把桌子上最顶端的盘子拿走 ...

  8. 【工作笔记】BAT批处理学习笔记与示例

    BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...

  9. 3-python学习——变量

    变量是我所接触过的编程语言中都具有的一个概念,只是这个概念有的强有的弱罢了. 1.什么是python的变量 变量这个东西怎么解释呢?不怎么好说. 这么说吧,变量就相当于一个代名词,或者说是名字. 计算 ...

随机推荐

  1. 语言小知识-Java ArrayList类 深度解析

    · 问题 1:ArrayList 的 size 和 capacity 怎么理解? 如果把 ArrayList 看作一个杯子的话,capacity 就是杯子的容积,也就是代表杯子能装多少东西,而 siz ...

  2. 动态规划-Largest Sum of Averages

    2018-07-12 23:21:53 问题描述: 问题求解: dp[i][j] : 以ai结尾的分j个部分得到的最大值 dp[i][j] = max{dp[k][j - 1] + (ak+1 + . ...

  3. SpringBoot导入excle文件数据

    本文主要描述,Springboot框架下上传excel,处理里面相关数据做逻辑分析,由于用到的是前后端分离技术,这里记录的主要是后端java部分,通过与前端接口进行对接实现功能 1.在pom.xml文 ...

  4. 雷林鹏分享:C# 集合(Collection)

    C# 集合(Collection) 集合(Collection)类是专门用于数据存储和检索的类.这些类提供了对栈(stack).队列(queue).列表(list)和哈希表(hash table)的支 ...

  5. 库: rspec/rspec-expectations matcher匹配器常用

    https://github.com/rspec/rspec-expectations https://relishapp.com/rspec/rspec-expectations/v/3-7/doc ...

  6. JavaScript 和 React,React用了大量语法糖,让JS编写更方便。

    https://reactjs.org/docs/higher-order-components.htmlhttps://codepen.io/gaearon/pen/WooRWa?editors=0 ...

  7. 4-1 contag_tag:返回HTMLtag.

    jquery已经过时,做一遍,了解其他知识点. contag_tag(name, content_or_options_with_block = nil, options = nil, &bl ...

  8. OC 构造方法(对象初始化)

    一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返 ...

  9. dubbo的请求、响应对

    dubbo中的请求和响应是如何关联起来的呢? 每一个请求和响应共用同一个id. public class DefaultFuture implements ResponseFuture { // in ...

  10. echatrs可视化图在隐藏后显示不出来或是宽度出现问题

    最近在做一个可视化的项目,用了百度的ECharts.js作为可视化的视图框架,echarts的实例很多,基本能满足项目的需求,而且文档也相对完整.清晰,是个很不错的前端可视化框架. 我们的项目是使用b ...