简单的出栈入栈的问题。不过这里给出的解用了map来做。简化了代码。好像原来我做这道题的时候还有好多判断。不过bb的课,我记得他要求递归写来的。把bb上课的笔记弄不见了,好后悔。。。他给出了很多很好的解法。
http://www.programcreek.com/2012/12/leetcode-valid-parentheses-java/
不多说废话。代码还是很清晰的。
package amzomOA;
import java.util.HashMap;
import java.util.Stack;
public class Patheses {
static boolean isValid(String s)
{
HashMap<Character, Character> map = new HashMap<Character, Character>();
map.put('(', ')');//这里一定要用单引号,双引号会被认为是String类型
map.put('[',']');
map.put('{', '}');
Stack<Character> stack = new Stack<Character>();
for(int i=0; i< s.length(); i++)
{
char current = s.charAt(i);
if(map.keySet().contains(current))
{
stack.push(current);
}else if(map.values().contains(current))
{
if(!stack.empty()&&map.get(stack.peek())==current)
{
stack.pop();
}else
return false;
}
}
return stack.empty();
}
public static void main(String[] args){
String str = "(}";
boolean flag = isValid(str);
System.out.println(flag);
}
}