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;
    }
  • 相关阅读:
    算法训练——整数平均值
    算法训练——字符删除
    算法训练——最大的算式
    flask_sqlalchemy查询时将date类型修改为datetime类型
    mysql更改时区
    python 省略号 三个点...的含义
    ubuntu系统安装gedit
    python操作hdfs总结
    流式上传下载
    python将文件夹打包
  • 原文地址:https://www.cnblogs.com/likaiming/p/8288433.html
Copyright © 2011-2022 走看看