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

怎么进网站凡客网站建站教程

怎么进网站,凡客网站建站教程,城市规划做底图的网站,最好用的磁力搜索神器用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。#xff08;LC这题不用#xff0c;自己写完整的需要#xff09; 2.遍历字符串:从左到右依次扫描字符串中的每个字符。 3.处理左括号:如果是左括号,将其压入栈中。 4.处理右… 用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。LC这题不用自己写完整的需要 2.遍历字符串:从左到右依次扫描字符串中的每个字符。 3.处理左括号:如果是左括号,将其压入栈中。 4.处理右括号:如果是右括号,检查找顶元素是否与其匹配: 如果匹配,弹出栈顶元素。如果不匹配,返回false,表示括号不匹配。 5.检查栈是否为空: 遍历结束后,检查找是否为空。如果栈为空,表示所有括号匹配;否则,返回false。 还有就是一开始可以直接排除掉奇数个的情况不可能匹配 可运行版 下面就是注意一个地方 pairs函数在扫描的时候如果发现是左括号那么会进入后面的else逻辑让左括号入栈 如果发现是右括号 那么会返回与之匹配的左括号去和当前栈顶的左括号匹配 #include stdio.h #include stdlib.h #include stdbool.h #include string.h// 定义一个函数 pairs用于返回与右括号对应的左括号 char pairs(char a) {if (a })return {;if (a ])return [;if (a ))return (;return 0; }// 检查括号是否匹配的函数 bool isValid(char *s) {int n strlen(s); // 获取字符串的长度if (n % 2 1){ // 如果字符串长度是奇数不可能匹配return false;}int *stk (int *)malloc((n 1) * sizeof(int)); // 动态分配栈的大小if (stk NULL){printf(Memory allocation failed\n);return false;}int top 0; // 初始化栈顶指针int i; // 将变量声明移到循环外部for (i 0; i n; i){char ch pairs(s[i]); // 获取与当前字符对应的左括号if (ch){ // 如果当前字符是右括号if (top 0 || stk[top - 1] ! ch){ // 检查栈是否为空或栈顶元素是否匹配free(stk); // 释放动态分配的内存return false;}top--; // 弹出栈顶元素}else{ // 如果当前字符是左括号stk[top] s[i]; // 将左括号压入栈中}}bool result (top 0); // 如果栈为空表示所有括号匹配free(stk); // 释放动态分配的内存return result; }// 示例使用 int main() {printf(%d\n, isValid(())); // 输出: 1 (true)printf(%d\n, isValid(()[]{})); // 输出: 1 (true)printf(%d\n, isValid((])); // 输出: 0 (false)printf(%d\n, isValid(([)])); // 输出: 0 (false)printf(%d\n, isValid({[]})); // 输出: 1 (true)// 复杂的例子printf(%d\n, isValid({[()]})); // 输出: 1 (true)printf(%d\n, isValid({[(])})); // 输出: 0 (false)printf(%d\n, isValid({{[[(())]]}})); // 输出: 1 (true)return 0; } cpp #include iostream #include stack #include string using namespace std; class Solution { public:bool isMatch(char a, char b){if ((a ( b )) || (a [ b ]) || (a { b })){return true;}return false;}bool isValid(string s){stackchar stk; // 定义一个栈用来存放左括号// stack是一个容器适配器它提供了一种先进后出的数据结构即栈。只能在栈顶进行插入和删除操作。if (s.size() % 2 1)return false; // 如果字符串长度为奇数则不可能有效直接返回falsefor (int i 0; i s.size(); i){ // 扫描字符串遇到左括号入栈遇到右括号则与栈顶元素匹配if (s[i] ( || s[i] [ || s[i] {)stk.push(s[i]); // 遇到左括号入栈// 下面的两个else if 和 else都是对右括号情况的处理else if (stk.empty())return false; // 如果遇到了右括号但是栈已经空了说明不是有效的括号,直接返回false;else if (!isMatch(stk.top(), s[i]))return false; // 如果遇到右括号且栈不为空但是栈顶不是相匹配的左括号返回false;elsestk.pop(); // 当前遍历到的右括号与栈顶左括号相匹配弹出栈顶元素继续遍历}return stk.empty(); // 遍历结束后栈为空则为有效否则无效} };int main() {Solution s;cout s.isValid(()) endl; // 输出: 1 (true)cout s.isValid(()[]{}) endl; // 输出: 1 (true)cout s.isValid((]) endl; // 输出: 0 (false)return 0; }LC版 C版 注意 两个empty的不同 比如具体的例子如下 class Solution { public:bool isMatch(char a,char b){if(a ( b ) ||a [ b ]||a { b })return true;elsereturn false;}bool isValid(string s) {int n s.size();if (n % 2 1) {return false;}stackchar stk;for(int i 0; i n ; i){if(s[i]( || s[i][ || s[i]{ )stk.push(s[i]);else if(stk.empty())return false;else if(!isMatch(stk.top(),s[i]))return false;else if(isMatch(stk.top(),s[i]))stk.pop();}return stk.empty(); // 遍历结束后栈为空则为有效否则无效}}; C版 char pairs(char a) {if (a }) return {;if (a ]) return [;if (a )) return (;return 0; }bool isValid(char* s) {int n strlen(s);if (n % 2 1){return false;}int stk[n 1], top 0;for (int i 0; i n; i){char ch pairs(s[i]);if(ch) // 如果是右括号{if ( top 0 || stk[top - 1] ! ch) {// 如果是空栈或者不匹配return false;}top --; // 匹配了就要出栈了top--指向新的位置}else //如果是左括号就入栈{//一开始top是0那么先赋值再移动指针指向下一个位置stk[top] s[i];top;}}return top 0; //最后应该都出栈了 }//总结其实就是把哪些不成立的条件先列出来还有注意各种边界条件然后理解了算法原理就能写出代码了
http://www.w-s-a.com/news/542753/

相关文章:

  • 免费建个人手机网站WordPress 简历库
  • 建网站 是否 数据库阳瘘的最佳治疗方法是什么
  • 知晓程序网站怎么做网站基础维护
  • 兼职做网站赚钱吗图片设计制作哪个软件好手机
  • 做手机旅游网站智慧校园登录入口
  • 莆田网站建设维护国外极简网站
  • 百度怎样收录网站缪斯设计集团
  • 网站建设在开封找谁做wordpress 数据转换
  • 旅游网站开发的流程江苏付费网络推广培训
  • 网站软文标题2018wordpress主题
  • 德清网站设计wordpress免登录发布接
  • 可以做游戏的网站有哪些客户关系管理系统的主要功能
  • 整人关不掉的网站怎么做广东省网站免备案表
  • 网站设计素材edu域名网站
  • 中山学校的网站建设wordpress文章图片显示不出
  • 兰溪城市建设规划网站网站联盟的基本流程
  • 免费推广网站注册入口小说阅读网站怎么建设
  • 新网站怎么做网络推广怎么做企业网站排名
  • jsp商业网站开发网站链接如何做二维码
  • 江苏高校品牌专业建设网站怎么制作网站搜索窗口
  • 北京app建设 网站开发公司织梦网站seo
  • 大学网站 作风建设专题汽车配件外贸出口公司
  • 东莞做网站系统购物网站建设精英
  • 建设vip网站相关视频网站营销建设公司
  • 微站直播平台杭州seo按天计费
  • seo 新旧网站 两个域名福州设计网站建设
  • 如何做网站客户端如何做网络营销网站
  • 苏州网站建设制度打鱼网站建设
  • 瓜子二手车直卖网上海小红书seo
  • 天津中小企业网站制作珠海做网站的