java判断括号是否闭合_【python每日一练】有效括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"输出: true
示例 2:
输入: "()[]{}"输出: true
示例 3:
输入: "(]"输出: false
示例 4:
输入: "([)]"输出: false
示例 5:
输入: "{[]}"输出: true
分析:
- 字符串一定是偶数个
- 第一个出现的字符一定是开括号
- 第一个出现的闭括号一定是与最近的开括号匹配
- 初始化一个数组
- 处理表达式的每个括号,当遇到开阔号,就放入到数组中,当遇到闭括号时检查 与数据中的最后一个开括号是否匹配,如果匹配就把这个开括号从数组移除,并继续处理,如果不匹配则表达式不匹配
- 最后如果过这个数组还有元素,说明表达式无效
解:
class SolutionBracket: def isValid(self, s: str): """ :param s: :return: """ mapps = {')': '(', ']': '[', '}': '{'} stack = [] if len(s) % 2 == 0 and s[0] in mapps.values(): for i in s: if i in mapps.values(): stack.append(i) else: elma = stack.pop() if stack else '#' if elma != mapps[i]: return False else: return False return not stackif __name__ == '__main__': b = "()[]{}" f = "{{{}" so = SolutionBracket() print(so.isValid(g))
拓展
如果字符串是一个类型的括号,可以用计数的方式实现,这个实现比较简答
- 初始化计数器为0
- 迭代字符串,遇到开括号计数器+1,否则-1
- 当计数器不为零的时候说明不是有效的表达式
解:
class SolutionBracket: def isValid(self, s: str,c:str): """ :param s:传入的字符串 :param c: 传入的括号类型如:'(','[','{' :return: """ num=0 for i in s: if i==c: num+=1 else: num-=1 return not numif __name__ == '__main__': b = "()()()" f = "((((())))" so = SolutionBracket() print(so.isValid(f,'('))
java判断括号是否闭合_【python每日一练】有效括号相关推荐
- Python每日一练0023
问题 如何判断一个文件是否存在 解决方案 这个问题可以分成几类问题 如果这里的文件指的是文件或目录,我们可以用os.path.exists()方法 >>> import os > ...
- python 编程一日一练-python每日一练
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 过滤掉列表中的负数 筛选出字典{lilei: 79,jim: 88,lu ...
- Python每日一练0004
问题 如何保存迭代对象的最后N个元素 例如保存列表['a', 'b', 'c', 'd']的最后2个元素 或者保存某个迭代器对象的最后5个元素 解决方案 对于列表.元组这样的数据结构,可以使用切片来很 ...
- python 编程一日一练-Python每日一练0022
问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...
- python 编程一日一练-Python每日一练0013
问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用collections库的ChainMap类,可以快速的将多个d ...
- Python每日一练0018
问题 你需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现. Python的float类型是存在误差的 >>> a = 1.1 >>> b = 2.2 & ...
- python每日一练名片管理程序_Python每日一练0022
问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...
- java判断括号是否闭合_用 java 判断 括号是否完全匹配
用 java 判断 括号是否完全匹配: package emp; import java.util.Stack; public class Parentheses { public static vo ...
- python怎么快速打括号_中括号怎么打-【python每日一练】有效括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...
最新文章
- 使用git更新github上的开源项目
- java中1代表什么_请问java中81是什么意思?
- poj 3481 平衡树
- asm管理的dg数据文件缺失的处理方法
- launch mode 应用场景
- Sentry UDFWhiteList bug分析
- 排序算法之——插入排序
- html文本分类输出,构建中文网页分类器对网页进行文本分类
- 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
- highcharts x轴 按照时间 datetime排序
- 16 岁赚到 20 万美元,我的编程之路始于对代码的热爱
- PHP游戏源码寻仙纪,在线多人文字游戏-可联机
- [iOS] 通知详解: iOS 10 UserNotifications -- 附加包Media Attachments
- java 追加文件换行_java 追加换行txt
- php人民币转换,人民币大小写转换(PHP版)
- utf-8 汉字对照表
- Mobaxterm 中文输入Backspace按键问题
- sqlzoo刷题——select from nobel(诺贝尔获奖查询)
- Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√
- 这款养蛙游戏火爆了朋友圈,游戏开发程序员已赚翻!