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

hanchengkeji杭州网站建设门户网站制作模板

hanchengkeji杭州网站建设,门户网站制作模板,深圳宝安做网站的公司,做电子签章登录那个网站力扣网 20 有效的括号 题目描述 给定一个只包括 (#xff0c;)#xff0c;{#xff0c;}#xff0c;[#xff0c;] 的字符串 s #xff0c;判断字符串是否有效。 有效字符串需满足#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右…力扣网 20 有效的括号 题目描述 给定一个只包括 (){}[] 的字符串 s 判断字符串是否有效。 有效字符串需满足 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 示例 1 输入s () 输出true示例 2 输入s ()[]{} 输出true示例 3 输入s (] 输出false思路分析 如果这里再用所谓的遍历字符串寻找进行匹配的话时间复杂度高且不说还麻烦但如果我们学习栈了以后这道题会变得异常轻松。 我们将所有的左括号入栈在字符串里找右括号同时出栈左括号进行匹配如果匹配成功就返回true否则返回false。 注意的问题 这里除了括号类型的匹配问题同时还有数量问题会存在左括号多于右括号或者反过来的情况这里如果数量不匹配的话也返回false。 判断数量的问题再寻找右括号时先判断栈是否为空这是判断右括号多余左括号的情况 在遍历一遍字符串后如果栈里面还有括号说明左括号多于右括号也返回false。 完整代码 力扣环境下是不提供栈的这里我们需要自己定义。 栈定义和常用接口 头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h #includestdlib.h #includeassert.h #includestdbool.htypedef char STDataType;typedef struct Stack {STDataType* a;int _top;int _capacity; }Stack;// 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(Stack* ps); // 获取栈顶元素 STDataType StackTop(Stack* ps); // 获取栈中有效元素个数 int StackSize(Stack* ps); // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps); // 销毁栈 void StackDestroy(Stack* ps); 接口实现文件 #includeStack.h// 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-a NULL;ps-_capacity 0;ps-_top 0; }// 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);//检查是否栈满if (ps-_top ps-_capacity){int newcapacity ps-_capacity 0 ? 4 : ps-_capacity * 2;Stack* ptr realloc(ps-a, sizeof(STDataType) * newcapacity);if (ptr NULL){perror(realloc fail);return;}ps-a ptr;ps-_capacity newcapacity;}//入栈ps-a[ps-_top] data;ps-_top; }// 出栈 void StackPop(Stack* ps) {assert(ps);assert(ps-_top 0);ps-_top--; }// 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top 0);return ps-a[ps-_top-1]; }// 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-_top; } // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps) {assert(ps);if (ps-_top 0){return 1;}else{return 0;} }// 销毁栈 void StackDestroy(Stack* ps) {assert(ps);free(ps-a);ps-_capacity 0;ps-_top 0; } 题目所需代码 bool isValid(char* s) {Stack st;StackInit(st);//初始化栈while (*s){if (*s { || *s ( || *s [)//为左括号进栈{StackPush(st, *s);}else{if (StackEmpty(st))//如果为右括号先判断栈是否为空{StackDestroy(st);return false;}char top StackTop(st);//出栈栈顶括号StackPop(st);if (*s ] top ! [ ||//两者进行匹配如果存在不等情况返回false*s } top ! { ||*s ) top ! (){StackDestroy(st);return false;}}s;}bool ret StackEmpty(st);//最后再判断栈是否为空左括号多余右括号情况布尔值如果栈为空返回真否则返回假StackDestroy(st);return ret; }
http://www.hkea.cn/news/14441846/

相关文章:

  • 网站域名缴费十年图片wordpress主题
  • 做气球装饰可以上哪些网站创业网站平台排名
  • 建设专业网站中国纪检监察报社社长
  • 石家庄手机网站建设公司html 新手入门
  • 100个最全的免费网站网页设计电脑配置推荐
  • 做信息网站怎么样网站建设销售好
  • 如何做网站监控交互设计是什么意思
  • 新网站内部优化怎么做广州网站建设系统
  • 汉中北京网站建设外国男男做暧暧视频网站
  • 做区域分析的地图网站深圳宝安做网站的公司
  • 二级目录网站怎么做建筑设计公司招聘
  • 郑州餐饮 网站建设美妆网站建设规划
  • 开发app和网站建设那个好些长沙最好玩的地方排名
  • 长春专业做网站公司手机网站开发需要哪些技术
  • 网站设计分类优化网站关键词排名软件
  • 郑州网站推广方案凤山网站seo
  • 网站页面建设方案书模板网站建设及优化方案
  • 设计必知的设计网站 039wordpress电子书主题
  • 周杰伦做的广告网站怎么制作婚介网站
  • 福建省建设厅网站电脑板pos机网站模板
  • wordpress 留言信息在哪里网站优化用户体验
  • 怎么制作纯文字图片西安做网站优化的公司
  • 网站服务器建设如何学习网站制作
  • seo做的不好的网站有哪些群晖建站教程
  • 郑州网站开发建设长春seo整站优化
  • 玉田网站建设dw怎么做phpcms网站
  • 网站建设收费标准咨询网站建设制作细节
  • 网站正在建设中 页面自动做效果图的网站
  • 3 建设营销型网站流程新手如何学seo
  • 网站建设推介会发言稿通辽做家教的网站