LeetCode之Valid Parentheses

/*本题直接采用栈模拟的方式。*/
class Solution {
public:
    bool isValid(string s) {
        if(s.empty()) return true;
        string res("");
        for(int i = 0; i < s.size(); ++i){
            if(s[i] == '(' || s[i] == '[' || s[i] == '{'){//入栈
                res += s[i];
            }
            else{
                if(res.empty()) return false;//没有可以匹配的括号
                if(s[i] == ')' && res[res.size()-1] == '(') res.pop_back();//出栈
                else if(s[i] == ']' && res[res.size()-1] == '[') res.pop_back();//出栈
                else if(s[i] == '}' && res[res.size()-1] == '{') res.pop_back();//出栈
                else return false;//括号不匹配
            }
        }
        if(res.empty()) return true;
        else return false;
    }
};



            
阅读更多
文章标签: Leetcode
个人分类: Leetcode
上一篇LeetCode之Length of Last Word
下一篇LeetCode之Longest Valid Parentheses
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭