满足超简单需求 还有没有其他的解决方法?

满足需求 还有没有其他的解决方法?

需求如下:

i, ii 如果是一对括号 返回True,反之返回False
是否可以用 in 进行实现?

import random
i = random.choice('({[')
ii = random.choice(')}]')
print(i,ii)   # i, ii 如果是一对括号  返回True
if (i == '(' and ii == ')') or (i == '{' and ii == '}') or (i == '[' and ii == ']'):
    print(True)
else:
    print(False)

两种办法,in和字典方式实现


import random

i = random.choice('({[')
ii = random.choice(')}]')

print(i, ii)

if i+ii in ['()', '{}', '[]']:
    print(True)
else:
    print(False)

第二种办法:用字典
import random

i = random.choice('({[')
ii = random.choice(')}]')

print(i, ii)

brackets = {'()': True, '{}': True, '[]': True}

if i+ii in brackets:
    print(True)
else:
    print(False)

可以用in ;in可用于判断列表中是否存在元素 和字符串中是否存在某个字符

可以的,for(I+ii)in[]

可以,就是不直观[狗头.jpg]

if ord(ii) - ord(i) in (1, 2):
  print(True)
else:
  print(False)

直观点是这样

if i + ii in ('()', '[]', '{}'):
  print(True)
else:
  print(False)
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    问题标题: 判断一对括号是否匹配有其他解决方法吗? 问题标签: python

    问题内容:

    import random
    i = random.choice('({[')
    ii = random.choice(')}]')
    print(i,ii)   # i, ii 如果是一对括号 返回True
    if (i == '(' and ii == ')') or (i == '{' and ii == '}') or (i == '[' and ii == ']'):
        print(True)
    else:
        print(False)
    

    请问还有没有其他的方法可以实现判断一对括号是否匹配?是否可以使用in操作符来实现?

    回答: 可以使用栈来判断一对括号是否匹配,使用in操作符也是可以实现的。

    使用栈的方法如下所示:

    1. 定义一个空的栈.
    2. 遍历括号序列,对于每个括号,如果是左括号,则将其压入栈中.
    3. 如果是右括号,则判断栈是否为空,如果为空,则返回False,因为没有与之匹配的左括号. 如果栈不为空,则将栈顶元素弹出,判断弹出的左括号是否与当前的右括号匹配. 如果不匹配,则返回False.
    4. 遍历完所有括号后,判断栈是否为空,如果栈为空,则返回True,表示所有括号都匹配了,否则返回False.

    下面是使用栈实现的代码示例:

    def is_valid_parentheses(s):
        stack = []
        for char in s:
            if char == '(' or char == '[' or char == '{':
                stack.append(char)
            else:
                if len(stack) == 0:
                    return False
                top = stack.pop()
                if (top == '(' and char != ')') or (top == '[' and char != ']') or (top == '{' and char != '}'):
                    return False
        return len(stack) == 0
    
    # 测试
    print(is_valid_parentheses("()"))  # True
    print(is_valid_parentheses("()[]{}"))  # True
    print(is_valid_parentheses("(]"))  # False
    print(is_valid_parentheses("([)]"))  # False
    

    使用in操作符也可以实现判断一对括号是否匹配的功能,代码如下:

    def is_valid_parentheses(s):
        while '()' in s or '[]' in s or '{}' in s:
            s = s.replace('()', '').replace('[]', '').replace('{}', '')
        return s == ''
    
    # 测试
    print(is_valid_parentheses("()"))  # True
    print(is_valid_parentheses("()[]{}"))  # True
    print(is_valid_parentheses("(]"))  # False
    print(is_valid_parentheses("([)]"))  # False
    

    以上就是两种判断一对括号是否匹配的方法。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^