题目:判断给定字符串中的括号是否合法。题目中涉及三种符号'(' + ')' , '[' + ']' , '{' + '}'。
思路:利用stack来存储符号。
注意申请char型stack是: Stack<Character> op = new Stack<Character>();
stack.peek() 查看栈顶元素,但是不弹出;stack.pop() 查看栈顶元素,并弹出。
解题:
public boolean isValid(String s) { int len = s.length(); Stack<Character> op = new Stack<Character>(); for(int i = 0 ; i < len ; i++){ char cur = s.charAt(i); if(!op.isEmpty()){ char top = op.peek(); if(top == '(' && cur == ')' || top == '{' && cur == '}' || top == '[' && cur == ']') op.pop(); else op.push(cur); }else{ op.push(cur); } } return op.isEmpty(); }
轻松AC,咻~