题目链接:valid-parentheses
import java.util.ArrayList;
import java.util.List;
/**
*
* Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
*
* The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.
*
*/
public class ValidParentheses {
// 65 / 65 test cases passed.
// Status: Accepted
// Runtime: 229 ms
// Submitted: 0 minutes ago
public boolean isValid(String s) {
if(s.length() % 2 == 1) return false;
List<Character> stack = new ArrayList<Character>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '{' || c == '(' || c == '[') stack.add(c);
if(stack.size() == 0) return false;
char lastChar = stack.get(stack.size() - 1);
if((c == '}' && lastChar == '{')
|| (c == ')' && lastChar == '(')
|| (c == ']' && lastChar == '[')) {
stack.remove(stack.size() - 1);
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}