LeetCode--Valid Parentheses

来源:互联网 发布:自学高中课程的软件 编辑:程序博客网 时间:2024/06/02 03:07

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) {        int len=s.length();        stack<char>brackets;        for(int i=0;i<len;i++){            if(s[i]=='('||s[i]=='{'||s[i]=='[') brackets.push(s[i]);            else{                if(brackets.empty()) return false;                if(s[i]==')'&&brackets.top()!='(')                    return false;                if(s[i]=='}'&&brackets.top()!='{')                    return false;                if(s[i]==']'&&brackets.top()!='[')                    return false;                            brackets.pop();            }        }        if(brackets.size()>0) return false;        return true;    }};
原创粉丝点击