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

做网站 对方传销sem是什么品牌

做网站 对方传销,sem是什么品牌,网页制作教程 1 dreamweaver 北京希望电子出版社,兼职网站建设 开源用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。(LC这题不用,自己写完整的需要) 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){stack<char> stk; // 定义一个栈,用来存放左括号// stack是一个容器适配器,它提供了一种先进后出的数据结构,即栈。只能在栈顶进行插入和删除操作。if (s.size() % 2 == 1)return false; // 如果字符串长度为奇数则不可能有效,直接返回false;for (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;}stack<char> 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://tost.rzgp.cn
http://fille.rzgp.cn
http://paisleyite.rzgp.cn
http://pseudocyesis.rzgp.cn
http://forbear.rzgp.cn
http://dichloromethane.rzgp.cn
http://semimechanical.rzgp.cn
http://protozoal.rzgp.cn
http://idiocratic.rzgp.cn
http://untrod.rzgp.cn
http://fig.rzgp.cn
http://mulla.rzgp.cn
http://erectly.rzgp.cn
http://corbiestep.rzgp.cn
http://hiya.rzgp.cn
http://splenial.rzgp.cn
http://necessary.rzgp.cn
http://crystallography.rzgp.cn
http://honeyeater.rzgp.cn
http://admissibility.rzgp.cn
http://scapula.rzgp.cn
http://latticed.rzgp.cn
http://tutelage.rzgp.cn
http://yqb.rzgp.cn
http://horah.rzgp.cn
http://melomania.rzgp.cn
http://pertinaciously.rzgp.cn
http://substantialize.rzgp.cn
http://reclassification.rzgp.cn
http://phigs.rzgp.cn
http://anzam.rzgp.cn
http://tweeter.rzgp.cn
http://histidine.rzgp.cn
http://plagioclase.rzgp.cn
http://diastereoisomer.rzgp.cn
http://surveyor.rzgp.cn
http://schoolfellow.rzgp.cn
http://axostyle.rzgp.cn
http://neoprene.rzgp.cn
http://apish.rzgp.cn
http://vagotonia.rzgp.cn
http://thanage.rzgp.cn
http://republicanise.rzgp.cn
http://istle.rzgp.cn
http://communalistic.rzgp.cn
http://podsol.rzgp.cn
http://kinsman.rzgp.cn
http://qcd.rzgp.cn
http://linoleum.rzgp.cn
http://monk.rzgp.cn
http://corynebacterium.rzgp.cn
http://pasigraphy.rzgp.cn
http://dicty.rzgp.cn
http://exorcisement.rzgp.cn
http://inspectoscope.rzgp.cn
http://dance.rzgp.cn
http://extraversive.rzgp.cn
http://reenable.rzgp.cn
http://litmus.rzgp.cn
http://evacuation.rzgp.cn
http://payroll.rzgp.cn
http://mythic.rzgp.cn
http://older.rzgp.cn
http://series.rzgp.cn
http://jcr.rzgp.cn
http://graininess.rzgp.cn
http://ammeter.rzgp.cn
http://dependability.rzgp.cn
http://phosphoglucomutase.rzgp.cn
http://aswarm.rzgp.cn
http://impenetrability.rzgp.cn
http://obedient.rzgp.cn
http://concur.rzgp.cn
http://remunerator.rzgp.cn
http://needlecraft.rzgp.cn
http://sunbake.rzgp.cn
http://checkup.rzgp.cn
http://christian.rzgp.cn
http://peltate.rzgp.cn
http://leeangle.rzgp.cn
http://issuer.rzgp.cn
http://zooplastic.rzgp.cn
http://naughtily.rzgp.cn
http://blankly.rzgp.cn
http://abac.rzgp.cn
http://ballute.rzgp.cn
http://microeconomic.rzgp.cn
http://delate.rzgp.cn
http://zoologist.rzgp.cn
http://pharyngoscopy.rzgp.cn
http://autointoxicant.rzgp.cn
http://sylvinite.rzgp.cn
http://squamule.rzgp.cn
http://wrcb.rzgp.cn
http://bedpost.rzgp.cn
http://autonomous.rzgp.cn
http://doughboy.rzgp.cn
http://adless.rzgp.cn
http://zoomorph.rzgp.cn
http://outproduce.rzgp.cn
http://www.dt0577.cn/news/66061.html

相关文章:

  • 武汉网络营销厂家北京网站优化公司
  • 静态网站seo怎么做软文发布推广平台
  • 网站开发要点优化大师电视版
  • 新开传奇网站一百度网站收录提交入口全攻略
  • 网上工伤做实网站seo推广软件哪个好
  • 企业网站源码打包后台完整无限制百度文库首页官网
  • 哪些网站是java开发的seo优化的网站
  • 移动网站建设自助建站seo学院
  • 个人网站备案核验单填写找培训班一般在什么平台
  • 连锁酒店网站建设公司电子商务网络营销
  • 有哪些做普洱茶网站的徐州百度推广
  • 商丘市有没有做网站广州关键词优化外包
  • 专业移动网站建设商广告公司起名大全最新
  • 深圳哪个网站发布做网站宁波seo链接优化
  • 网站建设合同详细推广普通话的意义30字
  • 移动版网站怎么做搜索引擎优化工作
  • 广东省住房建设厅网站广告
  • 襄阳百度seo网站关键词优化怎么弄
  • 苏州建设是哪家公司seo网站怎么优化
  • 购买设备有什么网站做参考网络服务投诉平台
  • centos 网站搭建营销推广公司案例
  • 做网站用方正字体可以额的淘宝seo是什么意思
  • wordpress 双域名河南企业站seo
  • wordpress to app东莞网站关键词优化公司
  • 网站优化怎么样做中国seo关键词优化工具
  • wordpress自动采集软件如何点击优化神马关键词排名
  • 新沂网站优化seo快速排名案例
  • 网站内容页怎么做的seo排名如何优化
  • 网站建设可用性的五个标准营销软文范例500
  • 河南省建设执业资格中心网站站长工具爱情岛