[leetcode] 20. Valid Parentheses 解题报告

来源:互联网 发布:淘宝评价过期有信誉 编辑:程序博客网 时间:2024/05/28 11:50

题目链接:https://leetcode.com/problems/valid-parentheses/

Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.


思路:利用一个栈来保存需要匹配的左括号,碰到右括号则判断栈顶需要匹配的是不是此类型的括号,最后栈为空即左括号完全被匹配则为合法字符串。

代码如下:

class Solution {public:    bool isValid(string s) {        stack<char> st;        for(auto val: s)        {            if(val == '(' || val == '{' || val == '[') st.push(val);            if(val == ')')            {                if(st.empty() || st.top()!= '(') return false;                else st.pop();            }            if(val == '}')            {                if(st.empty() || st.top()!= '{') return false;                else st.pop();            }            if(val == ']')            {                if(st.empty() || st.top()!= '[') return false;                else st.pop();            }        }        return st.empty();    }};


0 0
原创粉丝点击