题目链接
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: “()”
Output: true
Example 2:
Input: “()[]{}”
Output: true
Example 3:
Input: “(]”
Output: false
Example 4:
Input: “([)]”
Output: false
Example 5:
Input: “{[]}”
Output: true
题意:给定一个由括号字符组成的字符串,问是否合法。
思路:
最简单的思路,遍历判断入栈,最后判断栈是否为空。
Code:
import java.util.Stack;
public class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
for (char ch : s.toCharArray()) {
if (ch == '(') {
stack.push(')');
} else if (ch == '[') {
stack.push(']');
} else if (ch == '{') {
stack.push('}');
} else if (stack.empty() || stack.pop() != ch) {///栈为空或者栈顶不等于ch
return false;
}
}
return stack.empty();
}
public static void main(String[] args) {
String str = "" + "()";
boolean res = new Solution().isValid(str);
System.out.println(res);
}
}