判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)相关的知识,希望对你有一定的参考价值。
1 public boolean isMatch(String str){ 2 Stack stack = new Stack(); 3 for(int i = 0; i < str.length(); ++i){ 4 char ch = str.charAt(i); 5 if(ch == ‘[‘ || ch == ‘{‘ || ch == ‘(‘){ 6 stack.push(ch); 7 } else if(ch == ‘]‘ || ch == ‘}‘ || ch == ‘)‘){ 8 if(stack.isEmpty()){ //合法性判断:“消去”后残留的反括号或者本身就是反括号开头(例:“}...”) 9 return false; 10 } 11 char top = stack.peek(); 12 if(ch == ‘]‘ && top == ‘[‘ || ch == ‘}‘ && top == ‘{‘ || ch == ‘)‘ && top == ‘(‘){ //“消去”一对 13 stack.pop(); 14 } 15 else{ 16 return false; 17 } 18 } 19 } 20 return stack.isEmpty(); //最后一次“消去”(不会再执行“判断”,所以在这儿判断),是否残留反括号 21 }
以上是关于判断一个含多种括号的字符串是否匹配正确 (如(([]))正确,[[(()错误)的主要内容,如果未能解决你的问题,请参考以下文章