zoukankan      html  css  js  c++  java
  • Leetcode 20. 有效的括号

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

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。

    注意空字符串可被认为是有效字符串。

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

    输入: "()[]{}"
    输出: true
    

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

    输入: "([)]"
    输出: false
    

    示例 5:

    输入: "{[]}"
    输出: true

    思路:因为是按顺序闭合所以对于右括号如果栈顶不一样的话就是没有按顺序闭合
    所以遍历字符串,碰到左括号就push.右括号看跟栈顶是否相同即可
    最后注意遍历之后是否为空,不为空也是没有闭合
     1 class Solution
     2 {
     3 public:
     4     bool isValid(string s)
     5     {
     6         stack <char> st;
     7 
     8         for(int i=0; i<s.length(); i++)
     9         {
    10             char c=s[i];
    11             if(c=='(')
    12                 st.push(')');
    13             else if(c=='[')
    14                 st.push(']');
    15             else if(c=='{')
    16                 st.push('}');
    17             else
    18             {
    19                 if(st.empty()||st.top()!=c)
    20                 {
    21                     return false;
    22                 }
    23                 else st.pop();
    24             }
    25         }
    26         return st.empty();
    27     }
    28 };
    View Code
  • 相关阅读:
    iis添加证书
    重谈主键和索引
    关于心跳包的方案探究
    flutter android keystore
    flutter photo_view的改造
    dart 命名规范
    dart 公共变量
    flutter 交互提示方式
    flutter container image FittedBox AspectRatio
    聊聊flutter的UI布局
  • 原文地址:https://www.cnblogs.com/tijie/p/9925831.html
Copyright © 2011-2022 走看看