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

.net做网站之前设置惠州做棋牌网站建设哪家便宜

.net做网站之前设置,惠州做棋牌网站建设哪家便宜,展厅布置摆放设计公司,制作企业网页队列、栈专题 LeetCode 20. 有效的括号解题思路代码实现 LeetCode 921. 使括号有效的最少添加解题思路代码实现 LeetCode 1541. 平衡括号字符串的最少插入次数解题思路代码实现 总结 不要纠结,干就完事了,熟练度很重要!!&#xff…

队列、栈专题

    • LeetCode 20. 有效的括号
      • 解题思路
      • 代码实现
    • LeetCode 921. 使括号有效的最少添加
      • 解题思路
      • 代码实现
    • LeetCode 1541. 平衡括号字符串的最少插入次数
      • 解题思路
      • 代码实现
    • 总结

不要纠结,干就完事了,熟练度很重要!!!多练习,多总结!!!

LeetCode 20. 有效的括号

在这里插入图片描述

解题思路

遇到左括号就入栈,遇到右括号就去栈中寻找最近的左括号,看是否匹配,最后记得检查栈是否清空了,这才算匹配完成。

代码实现

class Solution {public boolean isValid(String s) {Stack<Character> stack = new Stack<>();for(char c:s.toCharArray()){if(c == '(' || c == '{' || c == '['){stack.push(c);}else if(!stack.isEmpty() && leftOf(c) == stack.peek()){stack.pop();}else {return false;}}return stack.isEmpty();}public char leftOf(char c){if(c == ')'){return '(';}else if(c == ']'){return '[';}else if(c == '}'){return '{';}return ' ';}
}

LeetCode 921. 使括号有效的最少添加

在这里插入图片描述

解题思路

核心思路是以左括号为基准,通过维护对右括号的需求数need,来计算最小的插入次数。需要注意两个地方:

  1. 当need == -1的时候意味着什么?

因为只有遇到右括号)的时候才会need–,need == -1意味着右括号太多了,所以需要插入左括号。
比如说s = “))“这种情况,需要插入 2 个左括号,使得s变成”()()”,才是一个合法括号串。

  1. 算法为什么返回res + need?

因为res记录的左括号的插入次数,need记录了右括号的需求,当 for 循环结束后,若need不为 0,那么就意味着右括号还不够,需要插入。
比如说s = “))(“这种情况,插入 2 个左括号之后,还要再插入 1 个右括号,使得s变成”()()()”,才是一个合法括号串。

代码实现

class Solution {public int minAddToMakeValid(String s) {int res = 0, need = 0;for(char c: s.toCharArray()){if(c == '('){need++;}else if(c == ')'){need--;if(need == -1){res++;need = 0;}}}return res+need;}
}

LeetCode 1541. 平衡括号字符串的最少插入次数

在这里插入图片描述

解题思路

  1. 当need == -1时,意味着我们遇到一个多余的右括号,显然需要插入一个左括号。
if (s[i] == ')') {need--;// 说明右括号太多了if (need == -1) {// 需要插入一个左括号res++;// 同时,对右括号的需求变为 1need = 1;}
}
  1. 当遇到左括号时,若对右括号的需求量为奇数,需要插入 1 个右括号。因为一个左括号需要两个右括号嘛,右括号的需求必须是偶数。(记住res和need代表含义不同,一加一减不可抵消,在need==-1时还有额外判断逻辑)
if (s[i] == '(') {need += 2;if (need % 2 == 1) {// 插入一个右括号res++;// 对右括号的需求减一need--;}
}

代码实现

class Solution {public int minInsertions(String s) {int res = 0, need = 0;for(char c :s.toCharArray()){if(c == '('){need+=2;if (need % 2 == 1) {res++;need--;}}else if(c == ')'){need--;if(need == -1){res++;need = 1;}}}return res+need;}
}

总结

本题来源于Leetcode中 归属于队列、栈类型题目。
同许多在算法道路上不断前行的人一样,不断练习,修炼自己!
如有博客中存在的疑问或者建议,可以在下方留言一起交流,感谢各位!

觉得本博客有用的客官,可以给个点赞+收藏哦! 嘿嘿

喜欢本系列博客的可以关注下,以后除了会继续更新面试手撕代码文章外,还会出其他系列的文章!

http://www.yayakq.cn/news/79535/

相关文章:

  • wordpress配置多站点广州专业做继承案件律师
  • 网站制作 系统定制网络上市场推广
  • 网站建设技能考试试题三房地产新闻时事热点
  • 建设网站的公司广州泰来县城乡建设局网站
  • 什么网站做啤酒重庆建设集团官方网站
  • cms网站模板 数据采集网站建设中采用的技术
  • 免费做企业网站好牌子商城网
  • 百度资源站长平台网站建设一般流程
  • 共享备案网站教学网站制作
  • 做网站买什么笔记本好台州市建设局网站
  • 网站恶意镜像 301推广普通话主题班会ppt
  • 网站主题类型怎么在网站做推广不要钱
  • 导购网站怎么做有特色自己制作简易网页
  • 给网站做友情链接个人网页设计的主要内容和要求
  • 商铺免费做的网站是普通网站地图好还是rss地图好一点
  • 网站开发都需要什么软件租车公司哪家好
  • 太原seo网站排名优化推广普通话的宣传语
  • 做淘宝客网站挣钱微商城网站策划
  • 网站游戏网站建设漯河百度做网站电话
  • 像淘客基地这样的网站如何做北京综合网站建设报价
  • 烟台住房和城乡建设厅网站南宁小程序制作
  • 嘉兴网站建设嘉兴网站推广襄阳网站建设外包
  • 微信小店可以做分类网站杭州物联网前十名公司
  • 网站上的图片带店面是怎么做的网站建设合同 代码应不应该给
  • 南昌 定制网站竞价推广出价多少合适
  • eclipse开发微网站开发国内免费注册域名
  • 免费网站注册 建站泸州建设工程质量监督网站
  • 专业网站设计的公司价格wordpress注册页面插件
  • 第一百四十七章 做视频网站wordpress文章怎么备份
  • 行业类网站应如何建设百度有哪些app产品