当前位置: 首页 > news >正文

河南手机网站建设公司宁波网站建设公司哪有

河南手机网站建设公司,宁波网站建设公司哪有,套模板做网站电话,装修网站建设网一.前言 如果想要使用C语言来解决这道题——有效的括号#xff1a;https://leetcode.cn/problems/valid-parentheses/description/我们必须要借用上一篇我们所讲的内容——栈的实现#xff1a;https://blog.csdn.net/yiqingaa/article/details/138923750?spm1001.2014.3001.…一.前言 如果想要使用C语言来解决这道题——有效的括号https://leetcode.cn/problems/valid-parentheses/description/我们必须要借用上一篇我们所讲的内容——栈的实现https://blog.csdn.net/yiqingaa/article/details/138923750?spm1001.2014.3001.5502 因为在C语言环境下力扣不会主动帮你实现栈需要用户自己手动创建栈。但是在C环境下力扣会主动为我们实现栈。 2.正文  1.1题目描述 1.2题目分析 1.21 题目想让用户干什么 这道题为我们用户提供了一个字符串s。我们需要编写程序来判断所给字符串s中相同类型的左括号与右括号是否一 一匹配。如果匹配正确就返回true。匹配不正确就返回false。 1.22 如何求解题目 这道题我们可以运用栈的知识面来求出这道题。 我们可以先创建一个栈变量st然后让字符串s逐一遍历字符如果遍历过程中字符是‘’    ‘[’   ‘{’   都可以将它们尾插到我们栈当中。如果在遍历过程中不是‘’    ‘[’   ‘{’ 而是‘)’    ‘]’   ‘}’我们可以调用之前写好的函数功能——取出栈顶元素 STDataType STTop(ST* ps) 这里的SLDataType是我们栈数据类型可能是int、char或者其他类型。调出可能之前存入栈的字符‘’    ‘[’   ‘{’ 并与遍历字符作对比。这里我暂且将取出栈顶的元素用变量top接受。我们就有取出栈顶元素与现在遍历字符的关系 if ((top ( *s ! )) ||             (top { *s ! }) ||             (top [ *s ! ])) 满足上面其中一个条件我们就可以说明相同类型的左括号与右括号没有一 一匹配。我们直接返回false即可。 值得注意的是:在返回true或者false之前都要对栈进行销毁处理——void STDestroy(ST* ps) 1.3代码实现 typedef int STDataType; struct Stack {STDataType* a;int top;int capacity; }; typedef struct Stack ST; void STInit(ST* ps);//栈的初始化 void STDestroy(ST* ps);//栈的销毁void STPush(ST*PS,STDataType x);//入栈 void STPop(ST* ps);//出栈STDataType STTop(ST* ps);//取栈顶的数据bool STEmpty(ST*ps);//判空int STSize(ST* PS);//获取数据个数 void STInit(ST *ps)//栈的初始化 {assert(ps);ps-a NULL;ps-capacity ps-top 0; } void STDestroy(ST* ps)//栈的销毁 {assert(ps);free(ps-a);ps-a NULL;ps-top ps-capacity 0; } void STPush(ST* ps, STDataType x)//入栈 {assert(ps);if (ps-capacity ps-top){int newcapacity ps-capacity 0 ? 10 : ps-capacity*2;STDataType* tmp (STDataType*)realloc(ps-a, newcapacity * sizeof(STDataType));if (tmp NULL){perror(realloc fail!);return;} ps-a tmp;ps-capacity newcapacity;}ps-a[ps-top] x;ps-top; } void STPop(ST* ps)//删除栈顶元素 {assert(ps);assert(ps-a);ps-top--; } STDataType STTop(ST* ps)//取出栈顶元素 {assert(ps);assert(ps-top 0);return ps-a[ps-top-1]; } bool STEmpty(ST* ps)//判断栈内元素是否为空 {assert(ps);if (ps-top 0)return true;return false; } int STSize(ST* ps)//获取数据个数 {assert(ps);return ps-top ; } bool isValid(char* s) {ST st; STInit(st); while (*s) {if (*s ( || *s { || *s [){STPush(st, *s);}else{if(STEmpty(st))//这一步是必须的因为如果栈为空且*s是) ] }说明 //题目给出的字符可能是这样的“)”、“(){}]”。类似这种情况都是不符合题意的情况。return false;char top STTop(st);STPop(st);//这里一定要进行尾部栈顶元素删除以便遍历字符和栈内字符能够对的上if ((top ( *s ! )) ||(top { *s ! }) ||(top [ *s ! ])){return false;}}s; } if (st.top ! 0)return false; STDestroy(st); return true; } 三.结言  今天的题目分享就到此结束了觉得对你有所帮助的同学能不能求一个三连。
http://www.w-s-a.com/news/743565/

相关文章:

  • 丹东谁做微网站威海网络科技有限公司
  • 寻找网站建设_网站外包自助打印微信小程序免费制作平台
  • 台式机网站建设vk社交网站做婚介
  • 创建网站得花多少钱网站建设的技术路线
  • 图书馆网站建设汇报免费编程软件哪个好用
  • 手机搭建网站工具网站搜索引擎优化的基本内容
  • 网站快速排名二手交易网站开发技术路线
  • 官方网站开发公司施工企业会计王玉红课后答案
  • 网站建设能用手机制作吗网站建设所需物资
  • 阜阳做网站的公司阳江招聘网最新消息
  • 织梦可以做哪些类型型网站wordpress 融资
  • 建设银行手机银行官方网站下载安装腾讯企点账户中心
  • 品牌设计网站有哪些商务网站建设平台
  • 新增网站备案时间什么是软件外包产业
  • 张家界做网站买了网站模版怎么做
  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站
  • 网站设计确认函合肥做网站维护的公司
  • 小说网站推荐网站开发语言怎么查
  • 网页制作基础教程慕课版电子版那种登录才能查看的网站怎么做优化
  • 制作网站用的域名网站域名注册信息查询
  • 公司域名查询官方网站女教师遭网课入侵直播录屏曝
  • 网站开发社交网络功能的作用腾讯公司网站