leetcode【其他】-----20. Valid Parentheses(有效的括号)

1、题目描述

2、分析

        判断输入的字符串的括号是否有效,这个其实很简单了,在很早之前学习数据结构时应该都见过,这是典型的栈的应用。首先将左括号都入栈,然后在每碰到一个右括号时,判断栈顶元素是否和这个右括号匹配,如果匹配则pop。不匹配则返回false。最后判断栈是否为空,为空则所有括号都匹配,否则还是返回false。

3、代码

class Solution {
public:
    bool isValid(string s) {
        if(s.empty()) return true;
        int len=s.size();
        stack<char> a;
        for(int i=0;i<len;++i){
            if((s[i]=='(')||(s[i]=='[')||(s[i]=='{'))
                a.push(s[i]);
            else{
                if(a.empty()) return false;
                if((s[i]==')')&&(a.top()!='(')) return false;
                if((s[i]==']')&&(a.top()!='[')) return false;
                if((s[i]=='}')&&(a.top()!='{')) return false;
                a.pop();  
            }                               
        }
        return a.empty();
    }
};

4、相关知识点

        栈的应用。

posted @ 2019-05-15 17:50  吾之求索  阅读(115)  评论(0)    收藏  举报