括号配对问题

来源:互联网 发布:淘宝衣服缩水美女视频 编辑:程序博客网 时间:2024/06/05 16:08

括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0

package 括号配对问题;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import java.util.Stack;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int number = input.nextInt();        String [] array = new String[number];        for (int i = 0;i<number;i++) {            array[i] = input.next();        }        //解决问题        List<String> result = handle(array);        //循环遍历结果        print(result);    }    //打印输出的结果    private static void print(List<String> result) {        if (result != null && result.size()>0) {            for (int i=0;i<result.size();i++) {                System.out.println(result.get(i));            }        }    }    //循环解决问题    private static List<String> handle(String[] array) {        List<String> result = new ArrayList<String>();        for (int i = 0;i<array.length;i++) {            String str = array[i];            //判断这个字符串是不是一个合法的括号            if (legalBrackets(str)) {                result.add("Yes");            } else {                result.add("No");            }        }        return result;    }    //用栈来实现这个字符串是不是合法的字符    private static boolean legalBrackets(String str) {        Stack<Character> sc=new Stack<Character>();        //首先判断这个字符串的长度        int x = str.length() % 2;        if (x != 0) {            return false;        } else {            char[] c=str.toCharArray();            for (int i = 0;i<c.length;i++) {                if (c[i]=='('||c[i]=='[') {                    sc.push(c[i]);                }  else if (c[i]==')') {                    if (sc.peek()=='(') {                        sc.pop();                    }                } else if (c[i] == ']') {                    if (sc.peek() == '[') {                        sc.pop();                    }                }            }            if (sc.empty()) {                return true;            }else {                return false;            }        }    }}
原创粉丝点击