zoukankan      html  css  js  c++  java
  • 利用栈判断有效的括号

     1 package com.wing.mall.cloud.account.modular.mq;
     2 
     3 import java.util.HashMap;
     4 import java.util.LinkedList;
     5 import java.util.Map;
     6 
     7 public class Solution {
     8     private static final Map<Character,Character> map = new HashMap<Character,Character>(){{
     9         put('{','}'); put('[',']'); put('(',')'); put('?','?');
    10     }};
    11 
    12     public static boolean isValid(String s) {
    13         if (s.length() > 0 && !map.containsKey(s.charAt(0)))  return false;
    14         LinkedList<Character> stack = new LinkedList<Character>() {{ add('?'); }};
    15         for (Character c : s.toCharArray()) {
    16             if(map.containsKey(c)) stack.addLast(c);
    17             else if(map.get(stack.removeLast()) != c) return false;
    18         }
    19         return stack.size() ==1;
    20     }
    21 
    22     public static void main(String[] args) {
    23         String s = "{[]}";
    24         boolean valid = isValid(s);
    25         System.out.println(valid);
    26     }
    27 
    28 }

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

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

    示例 1:

    输入: "()"
    输出: true
    示例 2:

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

    输入: "(]"
    输出: false
    示例 4:

    输入: "([)]"
    输出: false
    示例 5:

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

  • 相关阅读:
    11月7日
    11月6日
    11月5日
    11月4日
    html5
    intern
    pjtool用到的数据库----oracle范畴
    运用的jdk版本如何查看
    JAVA 一句话技巧
    [ios 开发笔记]:一句话笔记
  • 原文地址:https://www.cnblogs.com/bulrush/p/13253096.html
Copyright © 2011-2022 走看看