zoukankan      html  css  js  c++  java
  • LeetCode 20. 有效的括号(Valid Parentheses )

    题目描述

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

    有效字符串需满足:

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

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

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

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

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

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

    示例 5:

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

    解题思路

    利用栈的思想,对于左括号直接入栈,对于右括号,判断栈顶元素是否为对应的左括号,若不是则返回false,是则出栈继续遍历下一个括号

    代码

     1 class Solution {
     2 public:
     3     bool isValid(string s) {
     4         stack<char> st;
     5         for(int i = 0; i < s.length(); i++){
     6             switch(s[i]){
     7                 case '(':
     8                 case '[':
     9                 case '{':
    10                     st.push(s[i]);
    11                     break;
    12                 case ')':{
    13                     if(st.empty() || st.top() != '(') return false;
    14                     st.pop();
    15                     break;
    16                 }
    17                 case ']':{
    18                     if(st.empty() || st.top() != '[') return false;
    19                     st.pop();
    20                     break;
    21                 }
    22                 case '}':{
    23                     if(st.empty() || st.top() != '{') return false;
    24                     st.pop();
    25                     break;
    26                 }
    27             }
    28         }
    29         if(st.size()) return false;
    30         else return true;
    31     }
    32 };
  • 相关阅读:
    详解java定时任务
    Java之Exception
    Java设计模式
    Java中的static关键字解析
    浅析Java中的final关键字
    深入理解Java的接口和抽象类
    一个故事讲清楚NIO
    Java并发编程:线程池的使用
    Java垃圾回收机制
    ubuntu sublime text 2 破解版
  • 原文地址:https://www.cnblogs.com/wmx24/p/9627485.html
Copyright © 2011-2022 走看看