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

pc端网站设计规范windows10优化工具

pc端网站设计规范,windows10优化工具,网页版微信怎么登陆,做网站要切图吗题目描述 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右…

题目描述

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

  • 有效字符串需满足:
  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 每个右括号都有一个对应的相同类型的左括号
    测试样例1:
输入:s = "()"
输出:true

测试样例2:

输入:s = "(]"
输出:false

测试样例3:

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

思路

本题考察栈的应用。这里使用stl实现。
要考虑以下几种情况:
/*******
1.前面括号全都匹配成功,此时栈空了,但下一个元素是右括号。例如(())}
2.左括括号入栈后,只有但左括号,后面的全部匹配。此时,栈遍历一遍栈不为空。例如:{()()

3、左括号入栈后,来一个非匹配的有括号:{(}

原则:遇到左括号就入栈,遇到右的括号就取栈顶一个元素出栈来消耗一个右括号

注意:本题用了stl,pop()无返回值,如果有返回值代码更简洁,当然也可以使用别的方法。我这里仅仅提供一种思路。


class Solution {
public:bool isValid(string s) {stack<char> st;//定义一个栈for(int i=0;i<s.size();i++){if(s[i]=='(' || s[i]=='{' || s[i]=='['){//当是左括号时入栈。st.push(s[i]);//压入栈中}else{//右括号if(st.empty()==true)//是右括号但是栈中已空,(属于上面的第一种情况)return false;//匹配失败if(s[i]==')' && st.top()!='('){ //如果扫描到的是右括号,从栈中弹出的,也就是消耗出来的不与之匹配(属于第三种情况)return false;//匹配失败}else if(s[i]==')' && st.top()=='('){//如果左右匹配,则弹出元素。st.pop();}if(s[i]=='}' && st.top()!='{'){ //同上return false;//匹配失败}else if(s[i]=='}' && st.top()=='{'){st.pop();}if(s[i]==']' && st.top()!='['){ //同上return false;//匹配失败}else if(s[i]==']' && st.top()=='['){st.pop();}}}
//循环遍历一遍后,如果栈最后为空,则匹配成功if(st.empty()){return true;}else{return false;}//栈中不空,属于第二种情况,代表有单左括号。}
};

但还有一些技巧,在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的多了!

方法二:

class Solution {
public:bool isValid(string s) {if (s.size() % 2 != 0) return false; // 如果s的长度为奇数,一定不符合要求stack<char> st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '{') st.push('}');else if (s[i] == '[') st.push(']');// 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号 return false// 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。所以return falseelse if (st.empty() || st.top() != s[i]) return false;else st.pop(); // st.top() 与 s[i]相等,栈弹出元素}// 第一种情况:此时我们已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false,否则就return truereturn st.empty();}
};
http://www.hkea.cn/news/380099/

相关文章:

  • 为什么上不了建设银行个人网站漳州网络推广
  • 天津手机网站建站培训代运营公司可靠吗
  • 网站制作的一般步骤长春网站优化平台
  • Python做网站 性能上海seo培训中心
  • 网上投诉平台公众号排名优化
  • 网页模板网站推荐媒体公关是做什么的
  • 泰安的网站建设公司爱站网域名查询
  • 台州椒江网站制作公司广告推销
  • 南康做网站合肥seo招聘
  • 成都网站建设定长沙专业网站制作
  • 有什么网站是python做的如何自己开发一个平台
  • 网站建设标志设计北京网站优化公司
  • 图标使用wordpress杭州seo博客
  • 企业网站如何做推广竞价推广托管公司介绍
  • 网站如何做微信登录seo公司 杭州
  • 中山里水网站建设软文广告案例分析
  • 做外贸是用什么网站做新型网络营销方式
  • 心理咨询网站开发百度手机seo软件
  • 17网站一起做网批seo营销优化
  • 做赚钱网站程序员培训班要多少钱
  • 已经收录大规模修改收录页面对网站有影响吗什么软件可以推广自己的产品
  • 丁香园做科室网站厦门网络推广
  • 免费的企业网站制作提高网站权重的方法
  • 兰州网站制作怎么样网页在线生成
  • 自建网站网址雅虎搜索引擎首页
  • 注册科技有限公司可以做网站吗百度搜索排名机制
  • 武汉做网站好网站制作多少钱一个
  • 安阳网站建设怎么从网上找客户
  • 文章博客媒体网站模板怎样在百度上打广告
  • 做网站是不是要模板直接打开百度