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

永嘉网站优化企业邮箱来一个

永嘉网站优化,企业邮箱来一个,做公众号好还是网站好,修改wordpress上传路径题目描述给定一个只包 (,),{,},[,] 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意:空字符串可被认为是有效…

题目描述

给定一个只包 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。

注意:空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

输入: "()[]{}"
输出: true

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true

解题思路

对于没有学过「栈」这个数据结构的同学来说可能遇到这一类的问题咋一看可能有点没有头绪,但是其实只需要判断下一个元素是否在栈顶即可判断括号的匹配情况,即如果遇到一个左括号,我们将这个符号插入压栈,如果遇到一个右括号,我们判断一下栈顶的元素是否是对应的左括号,如果是(即与栈顶元素匹配),那么就一起出栈,否则的话直接返回 false 表示字符串无效。

我们来看一例子,假设字符串是 ( ) [ ],栈的变化分别为:

  1. ( 入栈
  2. ) 入栈,发现与栈顶元素 ( 匹配,出栈,目前栈为空
  3. [ 入栈
  4. ] 入栈,发现和栈顶元素 [ 匹配,出栈,栈为空

而如果是:(],栈的变化会是怎么样的呢?

  1. ( 入栈
  2. ] 入栈,栈顶元素为 (,不匹配,直接返回 false

C++ 代码实现如下

class Solution {
public:bool isValid (string const& s) {// 定义左右两边的括号序列string left = "([{";string right = ")]}";stack<char> stk;
​for (auto c : s) {// 判断每一个输入的字符是否为左括号,如果是就压栈if (left.find(c) != string::npos) {stk.push (c);} else {// 如果不是左括号,且如果发现栈为空,或者栈顶元素不是匹配的左括号的话,就返回 falseif (stk.empty () || stk.top () != left[right.find (c)])return false;// 如果匹配的话,就把栈顶出栈elsestk.pop ();}}return stk.empty();}
};

有了栈的知识之后,另一个可以用栈来完成的操作是实现一个队列。

http://www.dtcms.com/a/534514.html

相关文章:

  • 网站设计大概收费范围宜宾市规划建设局网站
  • 佛山专业的做网站的wordpress开发商城
  • 建单页网站网站正在建设中单页
  • 台州哪家做企业网站比较好2345网站登录
  • 橙色 网站六安政务中心网站
  • 做电子手抄报的网站建设一个网站平台
  • 温州网站设计哪家公司好网站空间空间
  • 北辰网站建设公司永湖网站建设
  • 如何写网站建设报告页面升级每天自动更新
  • 邯郸网址场百度推广和优化有什么区别
  • 怎么了解百度蜘蛛到哪个网站公司注册名字
  • 建立自己的网站费用网站的关键字 设置
  • 杭州网站开发凡客logo设计网站排行榜
  • 免费自助建站排名上海全上海全国网站建设
  • 哪里网站建设专业app和微网站的区别是什么
  • html5 wap网站毕业设计做网站有什么好处
  • 2023年没有封闭的网站有哪些seo怎么收费的
  • 网站开发毕设任务书建设厅查询网站
  • 阜宁做网站网站建设培训的心得
  • 知了网站后台建设自己网站软件下载
  • 描写做网站专业的句子域名抢注哪个平台好
  • 做网站的可以信吗在线音乐网站 用什么做
  • 网站添加备案wordpress 手机网站支付宝
  • 广东建设教育协会网站首页视频网站直播如何做
  • 邢台做网站推广费用北京珠宝网站建设
  • 上海手机网站案例什么是网络营销理论
  • 温州市建设质量监督站网站做外贸如何访问国外网站
  • 响应式网站源码上海造价信息网官网
  • 中企做的网站太原好网站开发策划要求
  • 网站建设项目的流程图app引流推广怎么做