Leetcode: 20 有效的括号
关键点:
遍历到左括号"{","[","("时,入栈;遍历到右括号"}","]",")"时,判断栈顶是否为相应的左括号,如果是,则将栈顶元素出栈,如果不是或栈为空,则返回false。遍历字符完之后还要判断栈是否为空,目的是防止只有左括号,如“[[,{[”,如栈为空,则返回true,否则返回false。代码如下:
class Solution {
Stack<Character> st = new Stack<Character>();
HashMap<Character,Character> map = new HashMap<Character,Character>();
public boolean isValid(String s) {
//注意: '}':'{',而不是'{':'}'
map.put('}','{');
map.put(')','(');
map.put(']','[');
for(char ch:s.toCharArray()){
if(map.containsKey(ch)){
if(!st.isEmpty() && st.peek() == map.get(ch))
st.pop();
else
return false;
}
else
st.push(ch);
}
//防止只有左括号,如”[[,{[”
return st.isEmpty();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。