我想测试输入的String是否平衡。如果有匹配的左,右括号,括号或大括号,则将是平衡的。

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;
}

我在选择要做什么时遇到问题。我是否应该将每个左括号或右括号,方括号或大括号放在堆栈中,然后弹出它们?如果我将它们弹出,那对我有什么帮助?

最佳答案

1)对于每个左括号:{ [ (将其插入堆栈。

2)对于每个右括号:从栈中弹出} ] )并检查括号的类型是否匹配。如果没有返回false

,即String中的当前符号为},如果从堆栈弹出的是{中的其他任何符号,则立即返回false

3)如果行尾和堆栈不为空,则返回false,否则返回true

09-05 13:23