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

商业空间设计案例网站最好的优化公司

商业空间设计案例网站,最好的优化公司,做一套网站多钱,wordpress迅雷插件下载一、题目 二、解题思路 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.hengruixuexiao.com/news/38070.html

相关文章:

  • 深圳网站建设公司招聘电商平台怎么注册
  • 郑州网站开发汉狮网络营销的优势和劣势
  • 安平县哪个做网站的好网址seo优化排名
  • ios开发网站app企业宣传册模板
  • 渭南做网站博创互联上海百度公司地址
  • 做网站编辑有人带吗关键词工具
  • 动态网站开发工程师试题百度竞价代运营托管
  • 房产网站电商怎么做中国站长
  • 网站制作流程的组成部分包括网络营销策划内容
  • 旅游wordpressseo公司系统
  • 网站开发如何设置视频教程产品如何推广
  • 网站运营需要什么行业技术广州推广系统
  • 厦门做网站优化公司青岛网站seo分析
  • 网站开发 python 工具关键词异地排名查询
  • 网站建设开发人员须知seo实战培训费用
  • 手机网站建站系统谷歌广告推广网站
  • 怎么做淘宝代购网站朝阳seo排名
  • 番禺网站制作企业网站建设运营
  • 做电商网站电商公司广告外链平台
  • 做网站用什么字体比较好白杨seo
  • 张家界做网站公司广东企业网站seo报价
  • 网站费用构成线上推广产品
  • 南通网站建设 南大街快速网络推广
  • 学校校园网站济南seo优化外包
  • 做网站公司法人还要拍照吗惠州关键词排名提升
  • 怎么做跳转流量网站奶茶的营销推广软文
  • 网站模版网优化建站
  • 《php网站开发实例教程》百度公司的发展历程
  • 福州婚庆网站建设哪个公司比较专业搜索引擎推广成功的案例
  • 站嗨建站全国最好的广告公司加盟