我们可以使用堆栈来检查两个字符串是否平衡。首先,我们将创建一个堆栈对象,并遍历第一个字符串。如果我们遇到任何打开的括号,我们将它们推入堆栈中,否则如果我们遇到任何关闭的括号,我们将弹出堆栈并检查它是否与当前括号匹配。如果它们不匹配,则表示字符串不平衡。如果遍历完成后我们的堆栈为空,则这两个字符串是平衡的。
下面是 Python 代码示例来实现上述算法:
def is_balanced(s1, s2):
stack = []
for char in s1:
if char in '({[':
stack.append(char)
elif 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 not stack and s2 == ""
这段代码首先遍历字符串 s1,并将打开括号推入堆栈 stack 中,如果遇到关闭括号,则弹出堆栈并检查其是否与当前括号匹配。最后,检查堆栈是否为空,并检查第二个字符串是否为空,以确定两个字符串是否平衡。