我们可以使用栈来解决该问题。首先,我们需要定义一个栈来存储字符串中的字符。然后,我们可以遍历第一个字符串,并将其中的所有开括号(“[”、“{”、“(”)压入栈中。接着,遍历第二个字符串,并将其中的所有字符与栈顶的字符进行比较,如果匹配成功,则将栈顶元素出栈。最后,我们可以检查栈是否为空来确定两个字符串是否平衡。
代码示例:
def is_balanced(str1, str2):
stack = []
for char in str1:
if char in ['[', '(', '{']:
stack.append(char)
for char in str2:
if char in [']', ')', '}']:
if not stack:
return False
if char == ']' and stack[-1] == '[':
stack.pop()
elif char == ')' and stack[-1] == '(':
stack.pop()
elif char == '}' and stack[-1] == '{':
stack.pop()
else:
return False
return len(stack) == 0
我们可以测试一下:
print(is_balanced('({[', '})]')) # False
print(is_balanced('({[', '})')) # False
print(is_balanced('({[', ')]}')) # True
输出:
False
False
True