Python【匹配符号】

要求:

输入一行符号,以#结束,判断其中的对称符号是否匹配。对称符号包括:
    { } 、 [ ] 、 ( )、 < >

    如果对称符号能够实现中间对称,则输出yes
    否则输出no
 

代码如下:

# 定义一个函数,用于判断输入行中的对称符号是否匹配
def is_symmetric(expression):
    # 定义对称符号的映射关系
    brackets = {'{': '}', '[': ']', '(': ')', '<': '>'}
    
    # 初始化一个空栈,用于存储遇到的左括号
    stack = []
    
    # 遍历输入字符串中的每个字符
    for char in expression:
        # 如果是左括号,则入栈
        if char in brackets.keys():
            stack.append(char)
        # 如果是右括号
        elif char in brackets.values():
            # 如果栈不为空,且栈顶的左括号与当前右括号匹配
            if stack and brackets[stack[-1]] == char:
                # 出栈,表示找到了匹配的左括号
                stack.pop()
            else:
                # 如果不匹配,则对称符号不成立,返回'no'
                return 'no'
    
    # 如果栈为空,说明所有左括号都有匹配的右括号,返回'yes',否则返回'no'
    return 'yes' if not stack else 'no'

# 测试用例一
test_case_1 = "({<(({<>}))>})"
result_1 = is_symmetric(test_case_1)
print(result_1)  # 输出:yes

# 测试用例二
test_case_2 = "()()()"
result_2 = is_symmetric(test_case_2)
print(result_2)  # 输出:no

相关推荐

  1. Python匹配符号

    2023-12-05 23:12:02       54 阅读
  2. 匹配算法 python

    2023-12-05 23:12:02       21 阅读
  3. Python 正则表达式 *, + 和 ? 符号

    2023-12-05 23:12:02       38 阅读
  4. Python 正则表达式 re . 符号

    2023-12-05 23:12:02       39 阅读
  5. Python 正则表达式 (?=...) 和 (?<=...) 符号

    2023-12-05 23:12:02       30 阅读
  6. Python】图像裁剪与匹配

    2023-12-05 23:12:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 23:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 23:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 23:12:02       82 阅读
  4. Python语言-面向对象

    2023-12-05 23:12:02       91 阅读

热门阅读

  1. 深入了解HttpSession:Web开发中的用户状态管理

    2023-12-05 23:12:02       50 阅读
  2. Vue3的reactive、ref、toRef、toRefs用法以及区别

    2023-12-05 23:12:02       55 阅读
  3. SQL语句常用语法(开发场景中)

    2023-12-05 23:12:02       41 阅读
  4. 数据结构:链表应用:第8关:链表的逆转

    2023-12-05 23:12:02       54 阅读
  5. 【.NET Core】Linq查询运算符(一)

    2023-12-05 23:12:02       37 阅读
  6. 大数据技术发展

    2023-12-05 23:12:02       52 阅读
  7. 【brpc学习实践十三】基于brpc的redis client的实现

    2023-12-05 23:12:02       54 阅读
  8. RedisTemplate序列化配置

    2023-12-05 23:12:02       52 阅读
  9. k8s部署的四种方案

    2023-12-05 23:12:02       48 阅读
  10. Redis 如何批量删除指定前缀的Key

    2023-12-05 23:12:02       57 阅读