python写一个函数检测括号是否成对匹配,支持所有类型括号

用 Python 编写的函数,用于检测字符串中的括号是否成对匹配。它支持所有类型的括号:

  • 圆括号: ( )
  • 方括号: [ ]
  • 花括号: { }

这个函数使用了 栈(stack) 的数据结构来实现括号匹配的判断。

✅ 示例代码如下:

python深色版本def is_parentheses_matched(s):    # 定义括号的映射关系    bracket_map = {')': '(', ']': '[', '}': '{'}    # 定义一个栈    stack = []    for char in s:        # 如果是右括号        if char in bracket_map:            # 栈不为空时弹出栈顶元素,否则赋值为一个特殊字符            top_element = stack.pop() if stack else '#'            # 如果不匹配则返回 False            if bracket_map[char] != top_element:                return False        # 如果是左括号,则压入栈中        elif char in bracket_map.values():            stack.append(char)    # 遍历完成后栈应为空,表示全部匹配    return not stack# 测试示例test_cases = [    "()",           # True    "()[]{}",       # True    "(]",           # False    "([)]",         # False    "{[]}",         # True    "",             # True    "(({{[]}}))",   # True    "(((",          # False]for test in test_cases:    print(f"{test!r} -> {is_parentheses_matched(test)}")

? 输出结果:

深色版本'()' -> True'()[]{}' -> True'(]' -> False'([)]' -> False'{[]}' -> True'' -> True'(({{[]}}))' -> True'(((' -> False

? 函数说明:

  • 使用  bracket_map 来定义每种右括号对应的左括号。
  • 遇到左括号就压入栈;
  • 遇到右括号时,从栈中弹出一个元素并检查是否匹配;
  • 最后栈必须为空才表示所有括号都正确闭合。

如需支持引号、注释等复杂情况(比如在代码中忽略引号内的括号),可以进一步扩展逻辑。需要的话我也可以提供更高级的版本。


http://travel.zgjzs.org

http://hotel.zgjzs.org

http://food.zgjzs.org

http://tech.zgjzs.org

http://health.zgjzs.org

http://edu.zgjzs.org

http://music.zgjzs.org

http://sports.zgjzs.org

http://fashion.zgjzs.org

http://auto.zgjzs.org

http://finance.zgjzs.org

http://law.zgjzs.org

http://art.zgjzs.org

http://book.zgjzs.org

http://movie.zgjzs.org

http://game.zgjzs.org

http://job.zgjzs.org

http://house.zgjzs.org

http://kids.zgjzs.org

http://pet.zgjzs.org

http://beauty.zgjzs.org

http://garden.zgjzs.org

http://science.zgjzs.org

http://history.zgjzs.org

http://culture.zgjzs.org

http://city.zgjzs.org

http://weather.zgjzs.org

http://map.zgjzs.org

http://data.zgjzs.org

http://energy.zgjzs.org

http://eco.zgjzs.org

http://farm.zgjzs.org

http://market.zgjzs.org

http://trade.zgjzs.org

http://service.zgjzs.org

http://club.zgjzs.org

http://event.zgjzs.org

http://festival.zgjzs.org

http://expo.zgjzs.org

http://museum.zgjzs.org

http://library.zgjzs.org

http://school.zgjzs.org

http://hospital.zgjzs.org

http://bank.zgjzs.org

http://insurance.zgjzs.org

http://stock.zgjzs.org

http://invest.zgjzs.org

http://tour.zgjzs.org

http://electronics.shangpin.org

http://clothing.shangpin.org

http://furniture.shangpin.org

http://jewelry.shangpin.org

http://cosmetic.shangpin.org

http://digital.shangpin.org

http://appliance.shangpin.org

http://outdoor.shangpin.org

http://sporting.shangpin.org

http://luxury.shangpin.org

http://grocery.shangpin.org

http://office.shangpin.org

http://tool.shangpin.org

http://craft.shangpin.org

http://antique.shangpin.org

http://collectible.shangpin.org

http://handmade.shangpin.org

http://organic.shangpin.org

http://baby.shangpin.org

http://watch.shangpin.org

http://bag.shangpin.org

http://shoe.shangpin.org

http://glass.shangpin.org

http://ceramic.shangpin.org

http://textile.shangpin.org

http://metal.shangpin.org

http://wood.shangpin.org

http://stone.shangpin.org

http://plastic.shangpin.org

http://paper.shangpin.org

http://ink.shangpin.org

http://paint.shangpin.org

http://lighting.shangpin.org

http://kitchen.shangpin.org

http://bath.shangpin.org

http://bed.shangpin.org

http://sofa.shangpin.org

http://carpet.shangpin.org

http://curtain.shangpin.org

http://lamp.shangpin.org

http://mirror.shangpin.org

http://clock.shangpin.org

http://vase.shangpin.org

http://frame.shangpin.org

http://toy.shangpin.org

http://instrument.shangpin.org

http://plant.shangpin.org

http://gift.shangpin.org

http://business.snjrw.org

http://media.snjrw.org

http://design.snjrw.org

http://photo.snjrw.org

http://video.snjrw.org

http://studio.snjrw.org

http://network.snjrw.org

http://cloud.snjrw.org

http://career.snjrw.org

http://learning.snjrw.org

http://research.snjrw.org

http://innovation.snjrw.org

http://project.snjrw.org

http://solution.snjrw.org

http://global.snjrw.org

http://local.snjrw.org

http://china.snjrw.org

http://asia.snjrw.org

http://europe.snjrw.org

http://america.snjrw.org

http://africa.snjrw.org

http://ocean.snjrw.org

http://space.snjrw.org

http://earth.snjrw.org

http://nature.snjrw.org

http://green.snjrw.org

http://future.snjrw.org

http://ai.snjrw.org

http://robot.snjrw.org

http://vr.snjrw.org

http://ar.snjrw.org

http://iot.snjrw.org

http://blockchain.snjrw.org

http://crypto.snjrw.org

http://nft.snjrw.org

http://metaverse.snjrw.org

http://smart.snjrw.org

http://safe.snjrw.org

http://privacy.snjrw.org

http://security.snjrw.org

http://trust.snjrw.org

http://quality.snjrw.org

http://certified.snjrw.org

http://premium.snjrw.org

http://elite.snjrw.org

http://vip.snjrw.org

http://prime.snjrw.org

http://gold.snjrw.org

请使用浏览器的分享功能分享到微信等