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

台州网站制作咨询薇专题网站模板

台州网站制作咨询薇,专题网站模板,个人网站搭建软件,产品营销推广一、题目链接 https://leetcode.cn/problems/valid-parentheses/submissions/538110206 二、题目思路 利用栈的性质#xff0c;后进先出 1.依次读取字符串#xff0c;判断是否为左括号#xff0c;如果是#xff0c;就将其入栈。 2.如果读取的不是左括号#xff0c;就说…一、题目链接 https://leetcode.cn/problems/valid-parentheses/submissions/538110206 二、题目思路 利用栈的性质后进先出 1.依次读取字符串判断是否为左括号如果是就将其入栈。 2.如果读取的不是左括号就说明是右括号了。这时要在栈不为空的情况下去取栈的栈顶元素判断栈顶元素是否和此时读取的右括号之间是否配对。 3.如果配对就让栈顶的左括号出栈 4.重复循环直至字符串读取完或者在读完之前就直接就判断出了匹配错误的结果 6.最后要判断是否栈是否为空栈如果是空栈就说明所有扩号是匹配成功的就返回true  如果不为空就返回false 注意如果字符串都是右括号这样就没有元素入栈最后判断栈为空得到了错误的结果 所以: 要在取栈顶元素判断之前要判断栈是否为空为空就说明第一个字符是右括号就直接代表匹配失败直接返回false 三、题解代码 typedef char StackDataType; typedef struct stack {StackDataType* data;int size;int capacity; } Stack; void stackInit(Stack* pst); void stackDestroy(Stack* pst); void checkCapacity(Stack* pst); int stackIsEmpty(Stack* pst); void stackFush(Stack* pst, StackDataType data); void stackPop(Stack* pst); StackDataType stackTop(Stack* pst); int stackSize(Stack* pst); void stackInit(Stack* pst) {pst-data NULL;pst-size 0;pst-capacity 0; } void stackDestroy(Stack* pst) {free(pst-data);pst-data NULL;pst-capacity 0;pst-size 0; } void checkCapacity(Stack* pst) {if (pst-size pst-capacity) {int newcapacity pst-capacity 0 ? 4 : 2 * pst-capacity;StackDataType* p (StackDataType*)realloc(pst-data,sizeof(StackDataType) * newcapacity);if (p NULL) {perror(realloc fail);return;}pst-data p;pst-capacity newcapacity;} } int stackIsEmpty(Stack* pst) {if (pst-size 0)return 1;elsereturn 0; } void stackFush(Stack* pst, StackDataType data) {checkCapacity(pst);pst-data[pst-size] data;pst-size; } void stackPop(Stack* pst) {pst-size--; } StackDataType stackTop(Stack* pst) {return pst-data[pst-size - 1]; } int stackSize(Stack* pst) {return pst-size; } bool isValid(char* s) {// write code hereStack sta;stackInit(sta);while (*s) {if (*s ( || *s [ || *s {)//读入左括号stackFush(sta, *s);//左括号入栈else {// //如果第一个是右括号进不了栈说明栈为空直接返回falseif(stackIsEmpty(sta))return false;if (!stackIsEmpty(sta)) {StackDataType temp stackTop(sta);//取栈顶元素//如果栈顶元素无法与之匹配就说明失败了if (*s ) temp ! ()return false;else if (*s ] temp ! [)return false;else if (*s } temp ! {)return false;elsestackPop(sta); //出栈更新栈顶元素}} s;//移动字符指针}if (stackIsEmpty(sta))return true; //如果最后栈为空就说明成功elsereturn false; }
http://www.w-s-a.com/news/583461/

相关文章:

  • ...课程网站建设简介工信部 网站备案查询
  • 网站代码建设 实例企业网站建设大概的费用
  • 制作网站软件排行榜过年做啥网站致富
  • 哪里有做网站企业seo关键词优化
  • 上海金山网站建设公司手机淘宝客网站怎么做的
  • 网站开发需要公司做网站费用计入什么科目
  • 网站优化有哪些类型免费制作app的傻瓜软件
  • 如何做网站咨询wordpress get
  • 企业网站建设网站做网站用别人的图片
  • 站长统计代码个人网站源代码
  • 求推荐专门做借条的网站公众号排版编辑器
  • 动态做网站网站开发语言查询 蔡学镛
  • 莆田网站建设创意自助建站英文
  • cms系统创建静态网站龙岗网站建设哪家好
  • 自己做的网站被封了邢台规划局网站建设
  • 网站建设项目合同wordpress主题没法用
  • 个旧市哪里有做网站wordpress内页php页面
  • 程序员接活的平台网站互联网平台建设方案
  • 网站安全建设模板深圳企业管理咨询公司
  • 做网站 还是淘宝店wordpress分类链接后加
  • wordpress腾讯云 COSseo内容优化心得
  • 特价旅游机票网站建设i营销
  • 如何成立网站深圳创业项目
  • 建设商业网站惠州网站建设推荐乐云seo
  • 如何申请免费域名做网站免费推广神器
  • 自媒体人专用网站安岳网站建设
  • 特乐网站建设做网站推广要多少钱
  • 山东省建设安全生产协会网站义乌跨境电商公司前十名
  • 做网站优化就是发文章吗起飞页自助建站平台的特点
  • 做网站还是做app好慈溪机械加工网