首页 > 其他分享 >数据结构实验之栈与队列四:括号匹配(SDUT 2134)

数据结构实验之栈与队列四:括号匹配(SDUT 2134)

时间:2023-02-14 13:02:15浏览次数:44  
标签:2134 ++ top 之栈 len else break -- SDUT

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[100];
char a[100];
int main()
{
    int i,j,k,f,top,len;
    while(gets(s) != '\0')
    {
        len = strlen(s);
        top = 0;
        f = 0;
        for(i = 0; i < len; i ++)
        {
            if(s[i] == ')')
            {
                if(top == 0)
                {
                    f = 1;
                    break;
                }
                else
                {
                    if(a[top - 1] == '(')
                    {
                        top --;
                    }
                    else
                    {
                        f = 1;
                        break;
                    }
                }
            }
            else if(s[i] == '(')
            {
                a[top ++] = '(';
            }
            else  if(s[i] == '}')
            {
                if(top == 0)
                {
                    f = 1;
                    break;
                }
                else
                {
                    if(a[top - 1] == '{')
                    {
                        top --;
                    }
                    else
                    {
                        f = 1;
                        break;
                    }
                }
            }
            else if(s[i] == '{')
            {
                a[top ++] = '{';
            }
            else if(s[i] == ']')
            {
                if(top == 0)
                {
                    f = 1;
                    break;
                }
                else
                {
                    if(a[top - 1] == '[')
                    {
                        top --;
                    }
                    else
                    {
                        f = 1;
                        break;
                    }
                }
            }
            else if(s[i] == '[')
            {
                a[top ++] = '[';
            }
        }
        if(top != 0 || f == 1)
            printf("no\n");
        else
            printf("yes\n");
    }
    return 0;
}

 

标签:2134,++,top,之栈,len,else,break,--,SDUT
From: https://blog.51cto.com/u_15965659/6056630

相关文章

  • SDUT DAG优化
    SDUTDAG优化题目描述大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。输入输入第一行为一个整数n(n<100),表示该组输入的表达式的个数之后n行为表达式......
  • SDUT 简单的代码生成程序
    SDUT简单的代码生成程序Description通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有>空寄存器>内存中存有>以后不再使用......
  • 数据结构实验之栈八:栈的基本操作
    数据结构实验之栈八:栈的基本操作TimeLimit:1000MSMemorylimit:65536K题目描述堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将......
  • 数据结构实验之栈七:出栈序列判定
    数据结构实验之栈七:出栈序列判定TimeLimit:30MSMemorylimit:1000K题目描述给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依......
  • Catlan数之栈的出栈序列-legend
    栈的出队顺序问题:(一)Catlan数:(1)给出入栈序列,求出所有的出栈的序列个数: C(2n,n)/(n+1);(2)给出入栈序列,求出所有的出栈序列;1)举例:1、2、3这三个数字,入栈并出栈共有5种方式,分......
  • Java数据结构之栈和队列
    原文链接:https://blog.csdn.net/fear_wolf/article/details/127459611文章目录一、栈(Stack)(一)概念(二)栈的使用(三)栈的模拟实现(四)问题思考1.栈,虚拟机栈,栈帧有什么区别?2.单链......
  • 每日算法之栈的压入、弹出序列
    JZ31栈的压入、弹出序列描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,......
  • 3-4 计算长方形的周长和面积 sdut-oj
    #include<iostream>usingnamespacestd;classRect{ private:  doublelen,width; public:  Rect(doublea=0,doubleb=0);  Rect(constRect&r);  voi......
  • 数据结构实验之栈与队列二:一般算术表达式转换成后缀式 sdut-oj
    #include<stdio.h>#include<stdlib.h>#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT100typedefstruct{  char*base;  ......
  • 数据结构实验之栈与队列四:括号匹配 sdut-oj
    #include<stdio.h>#include<stdlib.h>#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefstruct{  char*base;  ......