欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > python >内容正文

python

java判断括号是否闭合-凯发ag旗舰厅登录网址下载

发布时间:2024/10/14 python 25 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 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 stack​​​if __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,'(')) 与50位技术专家面对面20年技术见证,附赠技术全景图

    总结

    以上是凯发ag旗舰厅登录网址下载为你收集整理的java判断括号是否闭合_【python每日一练】有效括号的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

    网站地图