• A


    Description

     

    You are given a string consisting of parentheses () and []. A string of this type is said to be correct:

    (a)
    if it is the empty string
    (b)
    if A and B are correct, AB is correct,
    (c)
    if A is correct, () and [] is correct.

    Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.

    Input 

    The file contains a positive integer n and a sequence of n strings of parentheses () and [], one string a line.

    Output 

    A sequence of Yes or No on the output file.

    Sample Input 

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

    Sample Output 

    Yes
    No
    Yes
    

     思路:

    使用栈模拟就好

    #include"iostream"
    #include"cstring"
    #include"stdio.h"
    using namespace std;
    int main()
    {
    int  T;
    cin>>T;
    getchar();
    
    while(T--)
    {
    char a[130];
    
    gets(a);
    
    char stack[130];
    int top=0;
    
    int len=strlen(a);
    bool ok=true;
    
    for(int i=0;i<len;i++)
    {
    
    if(a[i]=='('||a[i]=='[')
    {
    top++;
    stack[top]=a[i];
    }
    
    
    if(a[i]==')')
    {
    if(stack[top]!='(') {ok=false;
    break;
    }
    top--;
    }
    
    if(a[i]==']')
    {
    if(stack[top]!='[') {ok=false;
    break;
    }
    top--;
    }
    
    
    }
    if(ok&&top==0) cout<<"Yes"<<endl;        //必须判断栈是否为空,因为你必须保证左边的括号不会多了
    else   cout<<"No"<<endl;
    }
    	return 0;
    }
  • 相关阅读:
    html5——渐变
    html5——背景
    html5——边框
    html5——私有前缀
    html5——盒子模式
    html5——文本阴影
    html5——颜色
    html5——css选择器
    html5——DOM扩展
    html5——多媒体(一)
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/4660443.html
Copyright © 2020-2023  润新知