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

网页游戏排行榜前十知乎天津的网络优化公司排名

网页游戏排行榜前十知乎,天津的网络优化公司排名,网站建设教程免费,网站默认图片素材一、题目 二、解题思路 1、我的思路 我看到题目之后&#xff0c;想着这可能是力扣里唯一一道我能秒杀的题目了 于是一波操作猛如虎写出了如下代码 public boolean isValid(String s) {char[] c s.toCharArray();for(int i0;i<c.length;i){switch (c[i]){case (:if(c[i]…

一、题目

二、解题思路

1、我的思路

我看到题目之后,想着这可能是力扣里唯一一道我能秒杀的题目了

于是一波操作猛如虎写出了如下代码

public boolean isValid(String s) {char[] c = s.toCharArray();for(int i=0;i<c.length;i++){switch (c[i]){case '(':if(c[++i]!=')')return false;break;case '[':if(c[++i]!=']')return false;break;case '{':if(c[++i]!='}')return false;break;}}return true;}

运行的时候三个测试用例都通过了,我心想这把稳了。信心满满地点击提交……

什么?!解答错误

嗷,那没事了,原来左括号后不一定跟的是右括号……这就回去重写

再仔细一思考,猛然回想起当时学数据结构的时候遇到过的括号匹配问题。这可能要用到栈,遇到左括号就让这个左括号进栈,遇到右括号就出栈一个括号,如果这两个括号能匹配就继续执行,反之则直接返回false

于是有了如下的代码,而且这段代码的运行效率竟然击败了98%的用户

char[] sc = s.toCharArray();Stack<Character> stack = new Stack<>();for(int i=0;i<sc.length;i++){switch (sc[i]){case '(':case '{':case '[':stack.push(sc[i]);break;default:if(stack.size()==0){return false;}switch(stack.pop()){case '(':if(sc[i]!=')')return false;break;case '{':if(sc[i]!='}')return false;break;case '[':if(sc[i]!=']')return false;break;}}}if(stack.size()!=0){return false;}return true;

 只不过我一开始没有考虑到循环中的

if(stack.size()==0){return false;
}

和循环结束的

if(stack.size()!=0){return false;
}

导致代码在测试 "[" 和 "]" 两个测试用例的时候都返回了错误的结果,还好力扣上可以看到出错的执行用例,所以我才能很快地找到问题

但是有很多算法竞赛是看不到执行出错的测试用例的,所以在打算法竞赛时,如果我们提交的代码出现了问题,不妨自己输入一些数据进行测试,而且要输入比较特殊的例子,如 "[" 和 "]" 这样的极端例子

2、官方题解

class Solution {public boolean isValid(String s) {int n = s.length();if (n % 2 == 1) {return false;}Map<Character, Character> pairs = new HashMap<Character, Character>() {{put(')', '(');put(']', '[');put('}', '{');}};Deque<Character> stack = new LinkedList<Character>();for (int i = 0; i < n; i++) {char ch = s.charAt(i);if (pairs.containsKey(ch)) {if (stack.isEmpty() || stack.peek() != pairs.get(ch)) {return false;}stack.pop();} else {stack.push(ch);}}return stack.isEmpty();}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/valid-parentheses/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

三、栈

考虑到可能也有一些小伙伴不会用栈,在这里给大家科普一下(图片来源于《labuladong的算法笔记》)

http://www.dinnco.com/news/25974.html

相关文章:

  • 济南传承网站建设公司seo标签怎么优化
  • 如何做亚马逊备案的网站手机app推广平台
  • 网站定制开发费用多少网站关键词优化推广哪家好
  • 荥阳做网站推广广州seo网站排名
  • 成都网站登记备案查询优质网站
  • 网站运营与管理的心得体会教你如何快速建站
  • 洛阳青峰网络让人去培训宁波seo网络推广咨询热线
  • 合肥 网站建设网站优化什么意思
  • 有哪些网站主页做的比较好看百分百营销软件
  • 政府网站建设管理规范宁波seo软件
  • 网页设计培训主要经营范围seo信息是什么
  • 网站及app建设网站流量排名查询工具
  • 如何用网站做苹果app新手学百度竞价要多久
  • 网站建设叁金手指花总8广州网络营销公司
  • 广西网站建设哪家好朔州seo
  • 男生可以做网站编辑工作吗网站建设报价明细表
  • 国内做家具外贸的网站有哪些洗发水营销推广软文800字
  • 宝鸡大学生做网站网站点击快速排名
  • 网络服务推广易下拉技巧威海seo公司
  • 北京欢迎你 网站建设南通seo网站优化软件
  • 学做网站论坛vip号码山西太原网络推广
  • 织梦 视频网站源码免费网络推广方式
  • 网站设计团队对seo的认识和理解
  • 自做网站好做吗亚洲长尾关键词挖掘
  • 帮别人做网站代写文章
  • 如何做旅游网站的思维导图网站域名查询
  • 可以做视频推广的网站网络广告策划案例
  • 有没有好玩的网页游戏网站seo优化方案策划书
  • 网站规划与建设报告怎么写域名注册网站有哪些
  • 企业营销型网站有特点社交媒体营销