假设括号都是(),{},[],{[]()},{()()}这种可以匹配的,存在{(}),([)均为错。
1 public boolean match(String str) { 2 //String str="[()()]{}"; 3 Stack <Character> s = new Stack<Character>(); 4 for (int index=0; index<str.length();index++) { 5 switch(str.charAt(index)) { 6 case ‘(‘: 7 s.push(str.charAt(index)); 8 break; 9 case ‘[‘: 10 s.push(str.charAt(index)); 11 break; 12 case ‘{‘: 13 s.push(str.charAt(index)); 14 break; 15 case ‘)‘: 16 if(s.peek().equals(‘)‘)&& (!s.empty()) ) { 17 s.pop(); 18 } 19 break; 20 case ‘]‘: 21 if(s.peek().equals(‘]‘)&& (!s.empty()) ) { 22 s.pop(); 23 } 24 break; 25 case ‘}‘: 26 if(s.peek().equals(‘}‘)&& (!s.empty()) ) { 27 s.pop(); 28 } 29 break; 30 } 31 } 32 if(s.empty()) { 33 return true; 34 } 35 return false; 36 }
原文地址:https://www.cnblogs.com/Suntree/p/11552361.html
时间: 2024-11-07 08:14:48