zoukankan      html  css  js  c++  java
  • 括号配对问题

    // stack
    #include <stdio.h>
    #include <string.h>
    
    char str[11000];
    char stack1[11000];
    int main()
    {
        int N;
        scanf("%d",&N);
        while(N--)
        {
            int i,j,top1;
            memset(str,0,sizeof(str));
            memset(stack1,0,sizeof(stack1));
            scanf("%s",str);
            top1=1;
            for(i=0;i<strlen(str);i++)
            {
                if(str[i]=='('||str[i]=='[')
                stack1[top1++]=str[i];
                if(str[i]==')')
                {
                    if(stack1[top1-1]=='(')
                    --top1;
                    else
                    stack1[top1++]=str[i];
                }
                if(str[i]==']')
                {
                    if(stack1[top1-1]=='[')
                    --top1;
                    else
                    stack1[top1++]=str[i];
                }
            }
            if(top1==1)
            printf("Yes
    ");
            else
            printf("No
    ");
       }
       return 0;
    }
    /// vector
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include <cstdio>
    using namespace std;
    bool isok(char a, char b)  // 字符a 和 b 是否配对
    {
      if (a == '(' && b == ')')
        return 1;
      if (a == '[' && b == ']')
        return 1;
      return 0;
    
    }
    int main()
    {
      int T, i, j;
      char s[10000];
      vector<char> stk;
      cin >> T;
    
      while (T--)
      {
        scanf("%s", s);
        stk.clear();
        int sign = 1;
        for (i = 0; i < strlen(s); i++)
        {
          if (s[i] == '[' || s[i] == '(')
            stk.push_back(s[i]);
          else if (isok(stk.back(), s[i]))
            stk.pop_back();
          else {
            sign = 0; break;
          }
        }
        if (!stk.empty()) sign = 0;
        if (sign == 0)
          cout << "No
    ";
        else cout << "Yes
    ";
      }
      return 0;
    }
    

      

  • 相关阅读:
    TensorFlow学习笔记之四——源码分析之基本操作
    TensorFlow学习笔记之三——适合入门的一些资源
    AW286 选课(背包类树形DP)
    AW303 运输小猫
    AW302 任务安排3
    AW301 任务安排2 (斜率优化DP)
    AW300 任务安排1
    AW311 月之谜
    AW310 启示录
    AW292 炮兵阵地
  • 原文地址:https://www.cnblogs.com/NWUACM/p/6628913.html
Copyright © 2011-2022 走看看