数据结构括号匹配问题 C语言

2023-11-14

数据结构中,括号匹配问题可以说是一个非常经典的问题。

【问题描述】假设一算术表达式中包括三种括号:圆括号“(”和“)”,方括号“[”和“]”,花括号“{”和“}”,且三种括号可按任意次序嵌套使用,试编写程序判定输入的表达式所含的括号是否正确配对出现(提示:表达式可以存入一个数据元素为字符的顺序表/数组中)。若匹配,则输出“Y”,否则输出“N”以及从左侧第一个不匹配字符的位置(从0开始编号)。【输入形式】含括号的算术表达式

【输出形式】Y 或者N 左侧第一个不匹配字符的位置

【样例输入】3+(44*]5-{6*[7*(45-10)]}])

【样例输出】N6
【样例说明】判断括号是否匹配涉及两方面,括号个数和出现次序的判定

#include<stdio.h>
int main()
{
 int a[1000]={0};
 for(int l=0;l<1000;l++)
 {
     a[l]=0;
 }
 int i,j,c;
 int m;//第一个偶数出现的位置
 m=0;
 i=0;
 j=999;
 //储存整数数组
 do
 {
   scanf("%d",&c);
     {if(c%2==1)
        a[i++]=c;
      if(c%2==0)
        a[j--]=c;//这样子做会让第一个偶数放在最后
     }
 }while (getchar()==',');


//计算m
 for(i=0;i<1000;i++)
 {
    if(a[i]%2==1||a[i]==0)
      m++;
 }
 //printf("%d",m);
 //printf("\n");

//改变偶数的位置
int n=m;//储存m原来的值
int x=1000-m;
int y=0;
int b[x];
//复制偶数数组
for(j=0;j<x;j++)
{
    b[j]=a[m];
    m++;
}
for(m=n;m<1000;m++)
{
    a[m]=b[x-1-y];
    y++;
}

//计算非0的个数
int notzero=0;
for(j=0;j<1000;j++)
{
    if(a[j]!=0)
        notzero++;
}


j=0;
 for(int k=0;k<1000;k++)
 {
 if(a[k]==0)
    continue;
 else
    {
        printf("%d",a[k]);
        if(j<notzero-1)
        {
            putchar(',');
            j++;
        }
    }
 }
 return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构括号匹配问题 C语言 的相关文章

  • 保研日记v

    目录 个人情况 夏令营情况 预推免情况 希望能对学弟学妹们能有一定的参考价值 同样也是为了本科前三年画上一个句号 有问题可以直接留言哈 认识我的话可以直接小窗私戳我 即便困惑你的是很小的问题也希望大家能够勇敢的开口问 因为走了很多弯路 也在
  • 我优化了进度条,页面性能竟提高了70%

    前言 大家好 我是零一 最近我准备在组里进行代码串讲 所以我梳理了下项目之前的业务代码 在梳理的过程中 我看到了有个进度条组件写的非常好 这又想起我刚开始学前端时写的进度条的代码 跟这个比起来真的差距太大了 大部分的初学者应该都想不到 而且
  • 程序员常用的命令

    写在前面 你们好 我是小庄 很高兴能和你们一起学习常用命令 如果您对Java感兴趣的话可关注我的动态 写博文是一种习惯 在这过程中能够梳理和巩固知识 常用的Linux命令 cd 改变目录 cd 回退到上一级目录 直接cd进入默认目录 pwd
  • Vulkan_片元着色器特效5(泛光Bloom)

    本部分主要结合上一部分的Vulkan 片元着色器特效4 高动态范围HDR 来综合展示HDR 泛光场景 主要参照 LearnOpenGL中的Bloom章节 一 基本原理 Bloom使我们能够注意到一个明亮的物体真的有种明亮的感觉 泛光可以极大
  • ctfshow web入门——web2

    无法查看源代码 点击右键确实不行 直接ctrl u查看即可 但这个也可以用另一种方法查看网页源代码 即在网页url前面 view source

随机推荐

  • stream详解

    Java中的Stream流 公司中用了很多Stream流 经常用来筛选出PO类型的List中想要的数据 所以还是比较常用的 Stream是Java8的新成员 允许以声明式方式处理数据集合 代码简洁 函数式编程写出的代码简洁且意图明确 使用s
  • ML-逻辑回归-Softmax-交叉熵(小航)

    在分类问题中 交叉熵的本质就是 对数 似然函数的最大化 逻辑回归的损失函数的本质就是 对数 似然函数的最大化 最大似然估计讲解 https www jianshu com p 191c029ad369 参考统计学习方法笔记 P79 soft
  • Svelte3聊天室

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 基于svelt
  • 服务器的日常运维巡检视频,日常运维检查记录表

    日常运维检查记录表 2页 本资源提供全文预览 点击全文预览即可全文预览 如果喜欢文档就下载吧 查找使用更方便哦 19 90 积分 日常运维检查记录表检查分类检查分类检查对像检查对像检查内容检查内容检查结果检查结果备注备注检查通道检测卡上各部
  • 关于KEIL MDK调试ARM程序不能仿真的问题

    在单片机程序调试过程中 由于程序量小 利用仿真器进行仿真调试方便直观 所以一般经常使用 但是keil经常会出现罢工 无法用仿真器调试的现象 如下图 解决方法也很简单 按照下图设置即可
  • BigDecimal类型加减乘除运算(Java必备知识)

    在现实开发当中经常会遇到这种计算 这里特此整理一下为方便以后学习 希望能帮助到其他的萌新 目录 1 为什么要用BigDecimal计算 2 浮点计算误差产生的原因 3 bigdecimal的初始化 4 bigdecimal的加减乘除 5 除
  • 【深度学习】小概念

    好用小工具 https lutzroeder github io netron 网络架构图可视化工具 liner probe与fine tune liner probe 将预训练的模型冻住 只从里面抽特征 就训练最后fc分类头层 做有监督的
  • 粒子群算法4——粒子群算法与蚁群算法的异同点

    作者 莫石 链接 http www zhihu com question 30326374 answer 59884351 来源 知乎 著作权归作者所有 转载请联系作者获得授权 群体智能算法家族的两个重要成员就是粒子群算法与蚁群算法 基本思
  • ros+arduino学习(六):重构ros_lib库文件

    前言 ros lib是arduino程序和ros连接的库文件 通过使用这些库文件和相关函数 可以在arduino上通过编程使得arduino硬件开ros节点程序 这样arduino硬件就可以与上位机通过话题进行通讯 从而把arduino从传
  • Spring配置构造函数的参数

    Spring配置构造函数的参数 参考 http blog csdn net u013473691 article details 50589021
  • sonar代码检查_代码质量管理工具:SonarQube常见的问题及正确解决方案(一)

    SonarQube 简介 Sonar 是一个用于代码质量管理的开放平台 通过插件机制 Sonar 可以集成不同的测试工具 代码分析工具 以及持续集成工具 与持续集成工具 例如 Hudson Jenkins 等 不同 Sonar 并不是简单地
  • 剑指 Offer 28. 对称的二叉树 -- 递归

    0 题目描述 leetcode原题链接 剑指 Offer 28 对称的二叉树 1 递归解法 对称二叉树定义 对于树中 任意两个对称节点 L L L 和 R R R 一定有
  • 【linux】redhat笔记:redhat入门操作

    登录界面 普通用户 root 一直点next 搜索执行任务 切换任务 鼠标点击 win键或者点击activity 会显示所有任务 控制窗口 最大化窗口 拖动窗口置顶部 取消最大化 拖动回去 分屏 拖动置左右 win 上下左右 控制窗口 要求
  • 算法入门:熄灯问题

    include
  • syn锁整体理解

    目录 前言 一 syn主要实现方式和基本原理 1 1实现原理 1 2syn特征 二 synchronized底层存储 2 1 对象结构 2 2 对象头的组成 2 2 2 class pointer 2 3 Monitor监视器锁 2 3 1
  • 02_fork和vfork的使用

    include
  • Cowrie 部署 SSH 蜜罐

    什么是蜜罐 1 何谓SSH蜜罐 通俗的讲 就是用程序模拟一个SSH端口服务 让黑客以为是真的SSH服务连接上来 然后收集相关信息比如 IP 登录所用的账号 登录上来之后做了什么操作等等 2 蜜罐其实就是一台无人使用但却被严密监控的网络主机
  • vue项目重复点击一个路由会报错如何解决

    在新版本的vue router中 重复点击同一个路由会出现以下报错 这个问题时vue router 3 2 0版本的一个小Bug 方法有很多 比如降低路由版本 不推荐 但是推荐下面这种方式 比较简单靠谱 把这段代码直接粘贴到router i
  • openssl websockets

    1 HTTPS通信的C 实现 知乎 GitHub Bwar Nebula Nebula is a powerful framwork for building highly concurrent distributed and resili
  • 数据结构括号匹配问题 C语言

    数据结构中 括号匹配问题可以说是一个非常经典的问题 问题描述 假设一算术表达式中包括三种括号 圆括号 和 方括号 和 花括号 和 且三种括号可按任意次序嵌套使用 试编写程序判定输入的表达式所含的括号是否正确配对出现 提示 表达式可以存入一个