zoukankan      html  css  js  c++  java
  • LeetCode-20-Valid Parentheses

    一、问题描述

      给定一个字符串,字符串中只包含'(', ')', '[', ']', '{', '}',判断该字符串是否符合算术式括号的顺序。

      例子:不符合的情况比如说“([)]”,符合的情况比如说“()”

    二、问题解决

      应该是很简单的一个问题了,使用一个栈,在遇到'(','[','{'时入栈,在遇到')',']','}'时和栈定元素比较,如果是配对的,则将站定元素出栈,如果不配对,则直接返回错误。当遍历完整个字符串,且栈为空的时候,表明这个字符串括号的顺序是完整的。

      下面的代码中使用了map将每个括号对关联起来,以便查找对于括号对。

    bool isValid(string s) {
        stack<char> stack;
        map<char, char> m = { {')','('},{'}','{'},{']','['} };
        for (auto i : s) {
            if (i == '(' || i == '[' || i == '{')
                stack.push(i);
            if (i == ')' || i == ']' || i == '}') {
                //bool  r = s.empty();
                if (stack.empty() == false && m[i] == stack.top())
                    stack.pop();
                else
                    return false;
            }
        }
        if(stack.empty())
            return true;
        return false;
    }
    
    int main()
    {
        cout << isValid("]") << endl;
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    session
    php增删改查,分页
    sql题
    php简单的数据增删改查
    php简单登录注册验证
    js题
    jQHTML(获取内容和属性)
    jQ效果(动画)
    Codeforces Round #460 (Div. 2): D. Substring(DAG+DP+判环)
    POJ 2891 中国剩余定理(不互素)
  • 原文地址:https://www.cnblogs.com/likaiming/p/8288433.html
Copyright © 2011-2022 走看看