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

2023-05-16

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

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic Discuss

Problem Description

 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。

 

Input

 输入数据有多组,处理到文件结束。

 

Output

 如果匹配就输出“yes”,不匹配输出“no”

 

Sample Input

sin(20+10)
{[}]

Sample Output

yes
no

Hint

Source

ma6174

栈的做法

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    int i,j,n,l;
    char s[150],p[150];
    while(gets(s)!=NULL)
    {
        n=strlen(s);
        j=0;                                      //标示符号
        l=1;
        for(i=0; i<n; i++)
        {
            if(s[i]=='{'||s[i]=='('||s[i]=='[')
            {
                p[j++]=s[i];
            }
            if(s[i]==')')
            {
                if(j==0)
                {
                    l=0;
                    break;
                }
                if(j>0&&p[j-1]=='(')              //与上一个元素比较
                {
                    j=j-1;
                }
                else if(j>0&&p[j-1]!='(')
                {
                    l=0;
                    break;
                }
            }
            if(s[i]==']')
            {
                if(j==0)
                {
                    l=0;
                    break;
                }
                if(j>0&&p[j-1]=='[')
                {
                    j=j-1;
                }
                else if(j>0&&p[j-1]!='[')
                {
                    l=0;
                    break;
                }
            }
            if(s[i]=='}')
            {
                if(j==0)
                {
                    l=0;
                    break;
                }
                if(j>0&&p[j-1]=='{')
                {
                    j=j-1;
                }
                else if(j>0&&p[j-1]!='{')
                {
                    l=0;
                    break;
                }
            }
        }
        if(l==0||j>0)
            printf("no\n");
        else if(j==0)
            printf("yes\n");
    }
    return 0;
}

 

字符数组的做法

#include <stdio.h>
#include <string.h>

int main ()
{
    int n , i ,  k ;
    char a[51];
    while(~scanf("%s" , a))
    {
        n = strlen(a);
        for (i = 0 ; i < n ;i++)
        {
            k = 1;
            if (a[i] == '(')
            {
                int j = i;
                while(j<n && a[j] != ')')
                {
                    if (a[j] == '['||a[j] == ']'||a[j] == '{' ||a[j] == '}')
                        {
                            k = 0;
                            break;
                        }
                        j++;
                }
            }
            else if (a[i] == '['&&k)
            {
                int j = i;
                while(j<n && a[j] != ']')
                {
                    if (a[j] == '{' ||a[j] == '}')
                        {
                            k = 0;
                            break;
                        }
                        j++;
                }
            }
            if (k==0)
            {
                break;
            }
        }
        if (k)
        {
            printf("yes\n");
        }
        else
        {
            printf("no\n");
        }
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构实验之栈与队列四:括号匹配 的相关文章

  • 鞍点计算

    鞍点计算 Time Limit 1000MS Memory Limit 65536KB Problem Description 找出具有m行n列二维数组Array的 鞍点 xff0c 即该位置上的元素在该行上最大 xff0c 在该列上最小
  • 回文串判定

    回文串判定 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一串字符 xff08 长度小于100 xff09 xff0c 判断该串字符是否是回文串 xff08 正序读
  • C语言合法标识符

    C语言合法标识符 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一个字符串 xff0c 判断其是否是C的合法标识符 Input 输入数据包含多个测试实例 xff0c
  • 简单字符串排序

    简单字符串排序 Time Limit 5000MS Memory Limit 100000KB Problem Description 从键盘输入10个学生的姓名和成绩 xff0c 请按字典序排列学生的姓名并输出 xff08 姓名和成绩对应
  • 小鑫の日常系列故事(二)——石头剪子布

    小鑫 日常系列故事 xff08 二 xff09 石头剪子布 Time Limit 1000MS Memory Limit 65536KB 小鑫在上幼儿园的时候 xff0c 喜欢跟小伙伴健健玩石头剪子布的游戏 xff0c 你能帮他们判断谁胜谁
  • 中位数

    中位数 Problem Description 中位数是指在一组数据中 xff0c 按数值大小排序后处于中间位置的数 例如 xff1a 1 5 3 排序后为 1 3 5 xff0c 则其中位数为 3 特别地 xff0c 当数的个数 N 为偶
  • 分享下我 Github 被封的经历

    最近好像又有人 Github 被封 xff0c 每隔一段时间就有 分享下我自己的经历吧 xff0c 好几年以前了 xff0c 也许还是有点参考价值 账号被封 xff0c 查找原因 那是 2017 年 12 月 xff0c 有天早上起来突然发
  • 幸运数字

    幸运数字 Time Limit 1000MS Memory Limit 65536KB Problem Description 我们定义幸运数字为只含有且必须同时含有 4 和 7 的数 例如 xff1a 47 747 是幸运数字 xff0c
  • A-B Problem

    A B Problem Time Limit 1000MS Memory Limit 65536KB Problem Description 这次当然不是简单的 a b 呐 xff5e 有一个神奇的变换规则是这样的 xff1a 给定两个数
  • C语言实验——一元二次方程Ⅰ

    C语言实验 一元二次方程 Time Limit 1000MS Memory Limit 65536KB Problem Description 解一元二次方程ax 2 43 bx 43 c 61 0的解 保证有解 Input a b c的值
  • C/C++经典程序训练2---斐波那契数列

    C C 43 43 经典程序训练2 斐波那契数列 Time Limit 1000MS Memory Limit 65536KB Problem Description 编写计算斐波那契 xff08 Fibonacci xff09 数列的第n
  • C/C++程序训练6---歌德巴赫猜想的证明

    C C 43 43 程序训练6 歌德巴赫猜想的证明 Time Limit 1000MS Memory Limit 65536KB Problem Description 验证 每个不小于6的偶数都是两个素数之和 xff0c 输入一个不小于6
  • C语言实验——整数位

    C语言实验 整数位 Time Limit 1000MS Memory Limit 65536KB Problem Description 输入一个不多于5位的正整数 xff0c 要求 xff1a xff08 1 xff09 求出它是几位数
  • C语言实验——各位数字之和排序

    C语言实验 各位数字之和排序 Time Limit 1000MS Memory Limit 65536KB Problem Description 给定n个正整数 xff0c 根据各位数字之和从小到大进行排序 Input 输入数据有多组 x

随机推荐

  • yxc 的日常

    yxc 的日常 Time Limit 1000MS Memory Limit 65536KB Problem Description yxc 特别喜欢睡觉 xff0c 但是由于上课和训练 xff0c 他睡觉的时间并不是连续的 xff0c 他
  • 奇偶性

    奇偶性 Time Limit 1000MS Memory Limit 32768KB Problem Description 判断输入的数据的奇偶性 Input 输入数据第一行是一个正整数N 接下来N行 xff0c 每行一个正整数 Outp
  • 念数字

    山东理工大学第一届团体程序设计天梯赛各班内组队选拔测试赛 3 290 分 编程题共 15 小题 xff0c 共计 290 分 剩余时间 30 03 10 剩余时间 30 03 10 编程题 7 9 念数字 xff08 15 分 xff09
  • Linux环境Ubuntu版本安装CMake V3.23.1记录

    以下采用源码方式安装 xff0c 先确认Ubuntu能够正常访问网络 以下bash终端命令皆是在root权限下 xff0c 否则在命令前加sudo 官方网址 xff1a 跳转连接 在命令终端切换root权限后 xff0c 安装以下内容 ni
  • 数据结构实验之链表二:逆序建立链表

    Problem Description 输入整数个数N xff0c 再输入N个整数 xff0c 按照这些整数输入的相反顺序建立单链表 xff0c 并依次遍历输出单链表的数据 Input 第一行输入整数N xff1b 第二行依次输入N个整数
  • 数据结构实验之链表一:顺序建立链表

    Problem Description 输入N个整数 xff0c 按照输入的顺序建立单链表存储 xff0c 并遍历所建立的单链表 xff0c 输出这些数据 Input 第一行输入整数的个数N xff1b 第二行依次输入每个整数 Output
  • 数据结构实验之链表七:单链表中重复元素的删除

    书上的例题 Problem Description 按照数据输入的相反顺序 xff08 逆位序 xff09 建立一个单链表 xff0c 并将单链表中重复的元素删除 xff08 值相同的元素只保留最后输入的一个 xff09 Input 第一行
  • 数据结构实验之链表九:双向链表

    数据结构实验之链表九 xff1a 双向链表 Time Limit 1000 ms Memory Limit 65536 KiB Problem Description 学会了单向链表 xff0c 我们又多了一种解决问题的能力 xff0c 单
  • 数据结构实验之排序八:快速排序

    数据结构实验之排序八 xff1a 快速排序 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 给定N N 10 5 个整数 xff0
  • 养兔子

    养兔子 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 一对成熟的兔子每天能且只能产下一对小兔子 xff0c 每次都生一公一母 x
  • 母牛的故事

    母牛的故事 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 有一对夫妇买了一头母牛 xff0c 它从第2年起每年年初生一头小母牛
  • 猴子分桃

    猴子分桃 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 老猴子辛苦了一辈子 xff0c 给那群小猴子们留下了一笔巨大的财富 一大
  • 骨牌铺方格

    骨牌铺方格 Time Limit 1000 ms Memory Limit 32768 KiB Submit Statistic Problem Description 在2 n的一个长方形方格中 用一个1 2的骨牌铺满方格 输入n 输出铺
  • 三国佚事——巴蜀之危

    三国佚事 巴蜀之危 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 话说天下大势 xff0c 分久必合 xff0c 合久必分 却道
  • 精读《设计模式 - Singleton 单例模式》

    Singleton xff08 单例模式 xff09 Singleton xff08 单例模式 xff09 属于创建型模式 xff0c 提供一种对象获取方式 xff0c 保证在一定范围内是唯一的 意图 xff1a 保证一个类仅有一个实例 x
  • 骨牌铺方格II

    骨牌铺方格II Problem Description 在3 n的一个长方形方格中 用一个1 3的骨牌铺满方格 输入n 输出铺放方案的总数 例如n 61 4时 为3 4方格 xff0c 骨牌的铺放方案有3种 Input 输入数据由多行组成
  • 数据结构实验之排序二:交换排序

    数据结构实验之排序二 xff1a 交换排序 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 冒泡排序和快速排序都是
  • 数据结构上机测试1:顺序表的应用

    这是通过程序设计基础的链表实现顺序表的代码 数据结构上机测试1 xff1a 顺序表的应用 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem
  • 数据结构实验之栈与队列一:进制转换

    数据结构实验之栈与队列一 xff1a 进制转换 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 输入一个十进制非负
  • 数据结构实验之栈与队列四:括号匹配

    数据结构实验之栈与队列四 xff1a 括号匹配 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 给你一串字符 xf