zoukankan      html  css  js  c++  java
  • 括号问题

    /*问题描述
    
    下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉
    
    例如:
    
    ..(..[..]..)..  是允许的
    
    ..(...[...)....].... 是禁止的
    
    对于 main 方法中的测试用例,应该输出:
    
    false
    
    true
    
    false
    
    false*/
    package test;
    
    import java.util.Stack;
    
    public class 括号问题 {
        public static boolean isGoodBracket(String s)
        {
            Stack<Character> a = new Stack<Character>();
            
            for(int i=0; i<s.length(); i++)
            {
                char c = s.charAt(i);
                if(c=='(') a.push(')');
                if(c=='[') a.push(']');
                if(c=='{') a.push('}');
                
                if(c==')' || c==']' || c=='}')
                {
                    if(a.empty()) return false;    // 填空
                    if(a.pop() != c) return false;
                }
            }
            
            if(!a.empty()) return false;  // 填空
            
            return true;
        }
        
        public static void main(String[] args)
        {
            System.out.println( isGoodBracket("...(..[.)..].{.(..).}..."));
            System.out.println( isGoodBracket("...(..[...].(.).){.(..).}..."));
            System.out.println( isGoodBracket(".....[...].(.).){.(..).}..."));
            System.out.println( isGoodBracket("...(..[...].(.).){.(..)...."));
        }
    }
  • 相关阅读:
    防抖函数
    video.js汉化
    vscode 设置
    webpack配置
    寄生组合继承
    数组排序
    操作节点的方法
    vscde软件
    vue目录详解
    前端
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8619527.html
Copyright © 2011-2022 走看看