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("...(..[...].(.).){.(..)...."));
        }
    }
  • 相关阅读:
    燃料
    Widgets学习
    莫比乌斯反演与杜教筛
    jade在命令行实时编译
    jade文档声明和头尾标签
    团队成员之间的对抗与互助的鼓励
    jade简介
    node入口文件分析和目录初始化
    搭建一个项目的前期准备
    判断团队适不适合使用node
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8619527.html
Copyright © 2011-2022 走看看