zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)有效的括号 个人题解

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

    有效字符串需满足:

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

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

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

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

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

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

    示例 5:

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


    这道题的思路比较简单,使用栈存放左括号,一旦遇到右括号就弹出栈顶元素进行判断是否配对,如果不是直接返回false。遍历字符串完毕后看栈内是否还有元素,如果有则为false,如果没有为true

    做个长度是否为偶数的特判可以提高速度,也要注意如果遇到输入的字符串都是右括号的特殊情况,栈内没东西可以弹出的特判。

    代码如下:

     1 class Solution {
     2     public boolean isValid(String s) {
     3         Stack<Character> stack = new Stack<>();
     4         if (s.length() % 2 != 0)
     5             return false;
     6         for (int i = 0; i < s.length(); i++) {
     7             if (s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{') {
     8                 stack.push(s.charAt(i));
     9             } else {
    10                 if (stack.isEmpty())
    11                     return false;
    12                 char tmp = stack.pop();
    13                 if (tmp == '(' && s.charAt(i) == ')')
    14                     continue;
    15                 else if (tmp == '[' && s.charAt(i) == ']')
    16                     continue;
    17                 else if (tmp == '{' && s.charAt(i) == '}')
    18                     continue;
    19                 else
    20                     return false;
    21             }
    22 
    23         }
    24         if (stack.isEmpty())
    25             return true;
    26         else
    27             return false;
    28     }
    29 }
  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/9972475.html
Copyright © 2011-2022 走看看