zoukankan      html  css  js  c++  java
  • 2058 括号序列

    2058 括号序列

     

     时间限制: 2 s
     空间限制: 128000 KB
     题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    定义满足以下规则字符串为规则序列,否则不是规则序列:

    1.空序列是规则序列;

    2.如果S是规则序列,那么(S),[S],{S}和<S>也是规则序列;

    3.如果A和B都是规则序列,那么AB也是规则序列。

    例如,下面的字符串都是规则序列:

    (),[],(()),([]),()[],()[()],{{}}<>,([]<>{{}}),<<{}>>

    而以下几个则不是:

    (,[,],)(,()),([(),<<,{(}),<{}>)

    现在,给你一些由"("、")"、"["、"]"、"{"、"}"、"<"、">"构成的字符串,请判断该字符串是否为规则序列。

    输入描述 Input Description

    第一行:一个正整数N,表示测试数据组数;

    接下来N行:每行一个括号序列(长度不超过L)。

    输出描述 Output Description

    共N行:对于每一个括号序列,判断其是否规则。

    规则输出TRUE,否则输出FALSE。

    样例输入 Sample Input

    2

    {()}<<>>

    {{{{{}}}}

    样例输出 Sample Output

    TRUE

    FALSE

    数据范围及提示 Data Size & Hint

    对于40%数据,有N=1,0<L<=20;
    对于80%数据,有0<N<=5,0<L<=10^3;
    对于100%数据,有0<N<=10,0<L<=2*10^6。

    分类标签 Tags 

     
    栈 线性结构
     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #define N 2000010
     5 using namespace std;
     6 char s[2000010],a[2000010];
     7 int n;
     8 bool judge()
     9 {
    10     int top=0;
    11     int len=strlen(s);
    12     for(int k=0;k<len;k++)
    13     {
    14         if(s[k]=='<'||s[k]=='{'||s[k]=='['||s[k]=='(')
    15             a[++top]=s[k];
    16         else 
    17             if((s[k]=='>'&&a[top]=='<')||(s[k]==']'&&a[top]=='[')||(s[k]==')'&&a[top]=='(')||(s[k]=='}'&&a[top]=='{'))
    18                 top--;
    19             else
    20                 return false;
    21     }
    22     if(top==0)
    23         return true;
    24     else
    25         return false;
    26 }
    27 int main()
    28 {
    29     scanf("%d",&n);
    30     for(int i=1;i<=n;i++)
    31     {
    32         cin>>s;
    33         int l=strlen(s);
    34         if(judge())
    35             cout<<"TRUE"<<endl;
    36         else
    37             cout<<"FALSE"<<endl;
    38     }
    39     return 0;
    40 }

     

     
  • 相关阅读:
    hd CPU
    OS + Linux Interview
    db db2 v8.2
    project ERP_SAP R3 / SAP ECC / mySap
    命名空间和模块化编程3 C++快速入门41
    链接和作用域 C++快速入门42
    对象观察器(Object Inspector)
    Delphi7的窗体设计器
    对象观察器(Object Inspector)
    链接和作用域 C++快速入门42
  • 原文地址:https://www.cnblogs.com/EvilEC/p/5703327.html
Copyright © 2011-2022 走看看