zoukankan      html  css  js  c++  java
  • 括号配对(栈)

    编写代码时,我们经常会多写或少写某一半括号,导致编译错误,请编写一个程序,判断是否有这个问题。

    输入

    第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行为多组测试数据,

    每组数据都是一个字符串S(S的长度小于10000,且S不是空串,只由‘{’,‘}’,‘(’,‘)’组成)。

    输出

    每组测试数据的输出占一行,如果该无错误,则输出Yes,反之,输出No

    样例输入

    3

    {(})

    (})

    ({{}()})

    样例输出

    No

    No

    Yes

     1 //2、栈
     2 #include<iostream>
     3 #include<string.h>
     4 using namespace std;
     5 char s[1005];
     6 char stack[1005];
     7 int main(){
     8     int n;
     9     cin>>n;
    10     while(n--){
    11         int len,top=1;
    12         cin>>s;
    13         len=strlen(s);
    14         stack[top]=s[0];
    15         top++;
    16         for(int i=1;i<len;i++){
    17             if(s[i]=='{'||s[i]=='('){
    18                 stack[top++]=s[i];
    19             }
    20             else{
    21                 if(stack[top-1]=='{'&&s[i]=='}')
    22                     top--;
    23                 else if(stack[top-1]=='('&&s[i]==')')
    24                     top--;
    25                 else
    26                     stack[top++]=s[i];
    27             }
    28         }
    29         if(top==1)
    30             cout<<"Yes"<<endl;
    31         else
    32             cout<<"No"<<endl;
    33     }
    34     return 0;
    35 } 

    运行截图:

  • 相关阅读:
    javascript中闭包
    bootstrap模版
    JS中DOM操作
    css重置样式
    API--未完待续
    JavaScript 的面向对象
    「 JavaScript 篇 」
    CSS篇
    淘宝前端的一些面试题
    BOM里的window命令; cookie的用法
  • 原文地址:https://www.cnblogs.com/geziyu/p/9222321.html
Copyright © 2011-2022 走看看