java数据结构之Stack括弧匹配问题

public static void expIsCorrect(String s) throws Exception
    {
        MySeqStack mss=new MySeqStack();
        for(int i=0;i<s.length();i++)
        {
            Character c=new Character(s.charAt(i));
            if(c.equals('(')||c.equals('{')||c.equals('['))
            {
                mss.push(c);
            }
            else if(c.equals(')')&&mss.notEmpty()&&mss.getTop().equals('('))
            {
                mss.pop();
            }
            else if(c.equals(')')&&mss.notEmpty()&&!mss.getTop().equals('('))
            {
                System.out.println("左右括号不匹配!");
                return;
            }
            else if(c.equals('}')&&mss.notEmpty()&&!mss.getTop().equals('{'))
            {
                System.out.println("左右括号不匹配!");
                return;
            }
            else if(c.equals(']')&&mss.notEmpty()&&!mss.getTop().equals('['))
            {
                System.out.println("左右括号不匹配!");
                return;
            }
            else if(c.equals('}')&&mss.notEmpty()&&mss.getTop().equals('{'))
            {
                mss.pop();
            }
            else if(c.equals(']')&&mss.notEmpty()&&mss.getTop().equals('['))
            {
                mss.pop();
            }
            else if((c.equals(')')||c.equals('}')||c.equals(']'))&&(!mss.notEmpty()))
            {
                System.out.println("右括号多于左括号!");
                return;
            }
        }
        if(!mss.notEmpty())
        {
            System.out.println("Right!!!");
        }
        else
        {
            System.out.println("左括号多于右括号!");
        }
    }

猜你喜欢

转载自blog.csdn.net/m0_37942202/article/details/81943570
今日推荐