zoukankan      html  css  js  c++  java
  • java实现括号的匹配

    括号的匹配

    下面的代码用于判断一个串中的括号是否匹配
    所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉

    例如:
    …(…[…]…)… 是允许的
    …(…[…)…]… 是禁止的
    对于 main 方法中的测试用例,应该输出:
    false
    true
    false
    false

    import java.util.*;
    public class A22
    {
        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(____________________) return false;    // 填空
                    if(a.pop() != c) return false;
                }
            }
            
            if(___________________) 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("...(..[...].(.).){.(..)...."));
        }
    }
    
    
    请分析代码逻辑,并推测划线处的代码。
    
    答案写在 “解答.txt” 文件中
    
    注意:只写划线处应该填的内容,划线前后的内容不要抄写。
    a.empty()
    !a.empty()
    
  • 相关阅读:
    【LeetCode】13. 罗马数字转整数
    【LeetCode】9. 回文数
    【LeetCode】7. 整数反转python3
    【LeetCode】7. 整数反转
    【LeetCode】1. 两数之和
    拖拽选择区域日历组件
    gitlab之gitlab-ci自动部署
    GitLab 安装和配置
    移动端键盘弹起导致底部按钮上浮解决方案
    JS判断滚动条是否停止滚动
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947295.html
Copyright © 2011-2022 走看看