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;
    }
  • 相关阅读:
    Flexbox布局(转)
    css兼容性
    本地存储 localStorage/sessionStorage/cookie
    正则去掉字符串空格
    ajax请求成功或失败的参数
    怎样实现页面跳转和刷新
    new Date()时间对象
    列车时刻表查询 jqm/ajax/xml
    jquery mobile 学习总结
    响应式学习总结
  • 原文地址:https://www.cnblogs.com/likaiming/p/8288433.html
Copyright © 2011-2022 走看看