package bd_algo;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
/**
* Created by Administrator on 2017/8/29.
*/
public class bracketsMatch {
public static void main(String[] args) {
boolean result = new bracketsMatch().isValidParentheses("{}[()[]");
System.out.println(result);
}
public boolean isValidParentheses(String s) {
// write your code here
Stack<Character> stack = new Stack<>();
int len =s.length();
for (int i = 0; i < len; i++) {
char ch = s.charAt(i);
if(ch == '(' || ch == '[' || ch == '{'){
stack.push(ch);
}else if(ch == ')' || ch == ']' || ch == '}'){
if(stack.size() == 0){
return false;
}
char left = stack.pop();
if(!isMatch(left, ch)){
return false;
}
}else {
return false;
}
}
return stack.size() == 0;
}
private boolean isMatch(char left, char right) {
Map<Character, Character> match = new HashMap<>();
match.put('(', ')');
match.put('[', ']');
match.put('{', '}');
return match.get(left) == right;
}
}
lintcode括号匹配
最新推荐文章于 2021-10-21 22:57:14 发布