20. 有效的括号

20. 有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

思路:使用栈逐个进行括号匹配
首次未通过用例:"]{}"、"["

bool isValid(string s) {
    if(s.size() == 0)
        return true;
    stack<char> stack1;
    map<char,char> m = {{']','['},{'}','{'}, {')','('}};
    for(auto i:s){
        if(i == ']' || i == ')' || i == '}'){
            //注意对栈判空,用例"]{}"
            if(stack1.empty() || stack1.top() != m[i])
                return false;
            stack1.pop();
        }else {
            stack1.push(i);
        }
    }
    //注意对栈判空,用例"["
    return stack1.empty();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容