• step 1:创建辅助栈,遍历字符串。
  • step 2:每次遇到小括号的左括号、中括号的左括号、大括号的左括号,就将其对应的呦括号加入栈中,期待在后续遇到。
  • step 3:如果没有遇到左括号但是栈为空,说明直接遇到了右括号,不合法。
  • step 4:其他情况下,如果遇到右括号,刚好会与栈顶元素相同,弹出栈顶元素继续遍历。
     //必须有左括号的情况下才能遇到右括号---------st.empty()结果是bool值
                else if(st.empty())  也即还有左括号存在,st不是空的。如果st已经空了,还在匹配呢,有右括号呢,肯定是不对的。
                    return false;
  • 【( 】情况,都不满足以下两种情况 会执行到循环结束,return st.empty();
     elseif(st.empty())
                    returnfalse;
                //右括号匹配则弹出
                elseif(st.top() == s[i])
                    st.pop();
  • step 5:理论上,只要括号是匹配的,栈中元素最后是为空的,因此检查栈是否为空即可最后判断是否合法。