java实现括号匹配

来源:互联网 发布:2017年旅游数据 编辑:程序博客网 时间:2024/06/15 18:43
package com.alibaba.learning;import java.util.Scanner;import java.util.Stack;public class StringMatching{public boolean stringMatch(String str){Stack<Character> stack = new Stack<>();//将字符串转成字符数组char[] ch = str.toCharArray();for (int index = 0; index < ch.length; index++){//检查栈是否为空,如果为空则将括号入栈if (stack.empty())stack.push(ch[index]);else{//否则就查看栈顶元素,看是否匹配Character ch1 = stack.peek();Character ch2 = (Character) ch[index];//如果匹配,则出栈if (ch1.equals('(') && ch2.equals(')') || ch1.equals('[') || ch2.equals(']'))stack.pop();else//否则,就将括号入栈stack.push(ch2);}}//字符串匹配完成之后,查看栈是否为空,如果为空,则表明匹配成功,返回true,否则,返回false;if (stack.empty())return true;elsereturn false;}public static void main(String[] args){StringMatching sm = new StringMatching();Scanner s = new Scanner(System.in);String str = s.next();s.close();System.out.println(sm.stringMatch(str));}}

1 0