leedcode-栈

括号的合法性

  1. 单括号
  • 记录左右括号个数,当右括号个数大于左括号个数,返回 false
  1. 多括号
 public boolean isValid(String s) {
  
	  HashMap<Character, Character> map = new HashMap<>();
	  map.put('(', ')');
	  map.put('[', ']');
	  map.put('{', '}');
  
	  Stack<Character> stack = new Stack<>();
  
	  for(char c : s.toCharArray()) {
		   if(map.containsKey(c)) {
			    stack.add(c);
		   }else {
			    if(!stack.isEmpty() && c == map.get(stack.peek())) {
				     stack.pop();
			    }else {
				     return false;
			    }
		   }
	  }
  
	  return stack.isEmpty();
 }

你可能感兴趣的:(leedcode)