我想测试输入字符串是否平衡。如果有匹配的左括号和右括号、方括号或大括号,它将是平衡的。
example:
{} balanced
() balanced
[] balanced
If S is balanced so is (S)
If S and T are balanced so is ST
public static boolean isBalanced(String in)
{
Stack st = new Stack();
for(char chr : in.toCharArray())
{
if(chr == '{')
st.push(chr);
}
return false;
}
我在选择做什么时遇到问题。我是否应该将每个左括号或右括号、方括号或大括号放在一个堆栈中,然后将它们弹出?如果我弹出它们,那对我有什么帮助?
原文由 Mike John 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于每个开括号:
{ [ (
将其推入堆栈。对于每个右括号:
} ] )
从栈中弹出并检查括号的类型是否匹配。如果不返回false
;即,字符串中的当前符号是
}
如果从堆栈中弹出的是{
中的任何其他内容,则立即返回false
。false
,否则返回 ---true
。