括号匹配问题

来源:互联网 发布:art template.js 下载 编辑:程序博客网 时间:2024/06/08 08:48

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

例如:

..(..[..]..)..  是允许的

..(...[...)....]....是禁止的

  

//用栈的知识

---------------------------------code----------------------------------------

import java.util.Stack;public class demo1{public static void main(String[] args) {boolean[] bool=new boolean[3];String[] str=new String[]{"...(..[.)..].{.(..).}...","...(..[...].(.).).{.(..).}...",".....[...].(.).){.(..).}..."};for(int i=0;i<str.length;i++){bool[i]=check(str[i]);}for(boolean b:bool)System.out.println(b);}public static boolean check(String str){Stack<Character> stack=new Stack<Character>();char c;for(int i=0;i<str.length();i++){     c=str.charAt(i);     if(c=='(')         stack.push(')');          if(c=='[')     stack.push(']');      if(c=='{')     stack.push('}');      if((c==')')||(c==']')||(c=='}'))      {      if(stack.size()==0)      return false;      if(c!=stack.pop())      return false;      }}if(stack.size()!=0)return false;return true;}}


原创粉丝点击