zoukankan      html  css  js  c++  java
  • 算法:检查括号是否配对

    package practice;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    import java.util.Stack;
    
    /**
     * 描述 现在,有一行括号序列,请你检查这行括号是否配对。<br>
     * 输入第一行输入一个数N(0<N<=100),表示有N组测试数据。<br>
     * 后面的N行输入多组输入数据,每组输入数据都是一个字符串S (S的长度小于10000,且S不是空串 ),测试数据组数少于5组。<br>
     * 数据保证S中只含有"[","]","(",")"四种字符输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的
     * ,则输出Yes,如果不配对则输出No
     * 
     * @author caiyu
     * @date 2014-10-22
     */
    public class Main {
        public static void main(String[] args) {
            char c, start;
            boolean f;
            String str;
            int i, j, t, len;
            List<String> rl = new ArrayList<String>();
            Stack<Character> stack = new Stack<Character>();
            Scanner s = new Scanner(System.in);
            t = s.nextInt();
            long time = System.currentTimeMillis();
            for (i = 0; i < t; i++) {
                str = s.next();
                f = true;
                for (j = 0, len = str.length(); j < len; j++) {
                    c = str.charAt(j);
                    if (c == 91 || c == 40)
                        stack.add(str.charAt(j));
                    else {
    
                        if (stack.size() == 0)
                            f = false;
                        else {
                            start = stack.pop();
                            f = start == 40 ? c == 41 : (start == 91 ? c == 93
                                    : false);
                        }
                    }
                    if (!f)
                        break;
                }
                if (stack.size() > 0)
                    f = false;
                stack.clear();
                if (f)
                    rl.add("YES");
                else
                    rl.add("NO");
            }
    
            for (String r : rl) {
                System.out.println(r);
            }
            System.out.println(System.currentTimeMillis() - time);
        }
    }
  • 相关阅读:
    在线捉鬼游戏开发之二
    在线捉鬼游戏开发之二
    在线捉鬼游戏开发之一
    Oxygen-Dapr.EshopSample 部署随记
    word2010 标题自动编号设置
    饿了么element 全屏加载中
    vue笔记
    那些骂鸿蒙的人,我想说……
    为什么我们要在 Sketch 中备份所有 Figma 设计
    好的设计要多分享,5款优秀在线原型设计案例
  • 原文地址:https://www.cnblogs.com/anrainie/p/4042348.html
Copyright © 2011-2022 走看看