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

求个网站急急急福州seo网址优化公司

求个网站急急急,福州seo网址优化公司,易语言如何做浏网站,thinkphp与wordpressLeetCode详解系列的总目录(持续更新中): LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客 LeetCode详解系列的上一题链接: LeetCode详解之如何一步步优化到最佳解法…

LeetCode详解系列的总目录(持续更新中):

LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客

LeetCode详解系列的上一题链接:

LeetCode详解之如何一步步优化到最佳解法:14. 最长公共前缀_leetcode 14-CSDN博客

目录

LeetCode详解系列的总目录(持续更新中):

LeetCode详解系列的上一题链接:

20. 有效的括号

解法1:暴力解法

解法1思路:

代码:

解法性能:

优化思路:

解法2:最终版

代码:

解法性能:


20. 有效的括号

本题题目链接:20. 有效的括号 - 力扣(LeetCode)

解法1:暴力解法

解法1思路:

从题目中,我们看出来,总共有3对括号,这种mapping关系我们可以用字典来存储,方便我们用O(1)的复杂度来查询。并且,对于每一个左括号,一方面,不一定有对应的右括号与之配对;另一方面,即使有这样的右括号,很大概率这个右括号不是字符串中的下一个字符。因此,我们需要有一个地方来存储还没有配对的括号,我们可以使用一个列表来存储这些信息。接着,我们开始遍历输入的字符串。

对于每一个字符,假如当前列表为空的话,我们需要判断这个字符对应的括号是左括号,还是右括号,因为输入的字符串有效的条件之一为“每个右括号都有一个对应的相同类型的左括号”,那么,如果当前的括号是右括号的话,我们就可以直接判断字符串不是有效的(因为列表为空,前面没有与之配对的左括号);如果当前的括号是左括号,我们就将其存储到列表中。

如果当前列表不为空的话,若当前的括号为右括号,我们需要判断列表中最后一个括号是不是和这个右括号是配对的,如果是的话,则配对成功,移除列表中最后一个括号;否则,输入的字符串不是有效的(因为当前的这个右括号没有与之配对的左括号,题目中指出字符串有效的条件之一为“左括号必须以正确的顺序闭合”)。若当前括号为左括号,则将这个括号存到列表中。

等遍历完字符串后,假如列表是非空的,说明还有没配对的括号,输入的字符串不是有效的;否则,输入的字符串是有效的。具体的代码如下所示:

代码:

class Solution:def isValid(self, s: str) -> bool:store = []mapping = {")": "(","}": "{","]": "["}for kuohao in s:if not store:if kuohao == ")" or kuohao == "}" or kuohao == "]":return Falsestore.append(kuohao)else:if kuohao in mapping.keys():if store[-1] != mapping[kuohao]:return Falseelse:store.pop()else:store.append(kuohao)if store:return Falseelse:return True

解法性能:

优化思路:

在上面的代码中,我们发现,在遍历字符串时,不论当前列表是空,还是非空,我们都是对如果当前括号是右括号的情况进行判断处理,而对当前括号是左括号的情况,则直接放进列表中。那么,我们是不是可以将操作进行合并,先处理右括号和左括号的情况。如果是右括号的话,再处理列表是空,还是非空的情况。优化后的代码如下所示:

解法2:最终版

代码:

class Solution:def isValid(self, s: str) -> bool:store = []mapping = {")": "(","}": "{","]": "["}for kuohao in s:if kuohao == ")" or kuohao == "}" or kuohao == "]":if not store:return Falseelse:if store[-1] != mapping[kuohao]:return Falseelse:store.pop()else:store.append(kuohao)if store:return Falseelse:return True

解法性能:

 

解法分析:

对比“解法2”和“解法1”的代码,我们可以发现,优化后的代码更加紧凑,逻辑更加清晰。代码紧凑,可以减少内存的消耗,因此,优化了这个指标。

 

http://www.dtcms.com/wzjs/312912.html

相关文章:

  • 免费做代理的网站百度营销
  • 可视化域名网站模块被删了百度搜索排名与点击有关吗
  • 免费制作微信小程序平台惠州seo招聘
  • 淘宝网站代做怎样淘宝seo排名优化
  • 宿州哪家做网站好简单网站建设优化推广
  • 看国外网站如何做科普网络销售怎么聊客户
  • 网站优化有哪些方法微商引流一般用什么软件
  • 酒店官方网站的功能建设唐山seo推广公司
  • 建设广告联盟网站邯郸网站优化
  • 涟源市建设局网站自己怎么做一个网页
  • 上海市建设工程安全质量监督总站网站网络广告策划书模板范文
  • 室内设计师收入seo快速排名优化公司
  • 网站开发的目标防晒霜营销软文
  • 德阳市住房和城乡建设局网站首页安卓优化大师老版本
  • 网络课程系统网站建设费用百度广告平台
  • 分析可口可乐网站建设的目的长沙关键词优化推荐
  • 广州网站优化seo顾问服务四川
  • 电子商务静态网站建设心得网站如何被搜索引擎收录
  • 网络营销策划方案1500字网站优化排名推荐
  • 单页销售网站如何赚钱沪深300指数
  • 北京昨晚出什么大事合肥百度推广排名优化
  • 找做仿网站网站优化软件费用
  • 深圳住房和建设局网站统一微博推广
  • 建站公司服务费包括哪些短视频seo软件
  • 郑州高端定制网站建设公司百度客服电话是多少
  • 做网站推销自己的产品这可行吗seo快速排名软件案例
  • 万户网络网站顾问百度一下首页问问
  • 东莞网站建设开发脚本外链平台
  • 网上商城推广方案seo公司哪家好
  • 网站空间商排行榜网站分为哪几种类型