zoukankan      html  css  js  c++  java
  • chapter6 数据结构基础之习题 Parentheses Balance

    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, (A) and [A] 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<cstdio>
    #include<cstring>
    #include<stack>
    using namespace std;
    int compare(char p,char q)
    {
    if(p=='('&&q==')') return 1;
    if(p=='['&&q==']') return 1;
    else return 0;
    }
    int main()
    {
    int n,L,flag;
    char c[100];

    scanf("%d ",&n);
    for(int i=0; i<n; i++)
    {
    stack<char> st;
    flag=0;
    gets(c);
    L=strlen(c);
    for(int j=0; j<L; j++)
    {

    if(c[j]=='('||c[j]=='[') st.push(c[j]);
    if(c[j]==')'||c[j]==']')
    {
    if(st.empty())
    {
    flag=1;
    break;
    }
    if(compare(st.top(),c[j])) st.pop();
    else{
    flag=1;
    break;
    }
    }
    }
    if(flag==1||!st.empty()) cout<<"No"<<endl;
    else cout<<"Yes"<<endl;

    }
    return 0;
    }

  • 相关阅读:
    jQuery_03之事件、动画、类数组操作
    jQuery_02之元素操作及事件绑定
    jQuery_01之选择器
    DOM_06之定时器、事件、cookie
    DOM_05之DOM、BOM常用对象
    DOM_04之常用对象及BOM
    DOM_03之元素及常用对象
    DOM_02之查找及元素操作
    了解bootstrap导航条
    学习Angularjs-day1-总结
  • 原文地址:https://www.cnblogs.com/is-Tina/p/8955078.html
Copyright © 2011-2022 走看看