zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses

    Problem:

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

    An input string is valid if:

    Open brackets must be closed by the same type of brackets.
    Open brackets must be closed in the correct order.
    Note that an empty string is also considered valid.

    Example 1:

    Input: "()"
    Output: true
    

    Example 2:

    Input: "()[]{}"
    Output: true
    

    Example 3:

    Input: "(]"
    Output: false
    

    Example 4:

    Input: "([)]"
    Output: false
    

    Example 5:

    Input: "{[]}"
    Output: true
    

    思路

    Solution (C++):

    bool isValid(string s) {
        if (s.empty())      return true;
        stack<char> stk{};
        int len = s.length();
        for (int i = 0; i < s.length(); ++i) {
            if (s[i] == '(' || s[i] == '{' || s[i] == '[')
                stk.push(s[i]);
            else if (s[i] == ')') {
                if (stk.empty() || stk.top() != '(')  return false;
                else  stk.pop();
            }
            else if (s[i] == '}') {
                if (stk.empty() || stk.top() != '{')  return false;
                else  stk.pop();
            }
            else if (s[i] == ']') {
                if (stk.empty() || stk.top() != '[')  return false;
                else  stk.pop();
            }
        }
        if (!stk.empty()) return false;
        return true;
    }
    

    性能

    Runtime: 0 ms  Memory Usage: 6.2 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    DDD 领域驱动设计
    IOC 控制反转
    WCF
    Lucene 全文检索引擎
    Redis
    Cache 缓存
    return
    PHP中empty();和isset();的区别.
    sql 简单用语
    关系型数据库
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12583868.html
Copyright © 2011-2022 走看看