判斷括號順序是否正確,用棧
- 考慮空輸入、可能含有空格、超長輸入
- 先獲取字符串長度,并依此建立數組(棧)
- 若為左括號,入棧;
- 若為右括號,對比是否與棧頂元素相同,若是,則棧頂出棧,繼續進行直到末尾;若不同,則直接返回false
直接求解
結果:AC
這是排名第一的答案,真的好簡潔,我寫的和他的一比較簡直一坨**
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
for (char c : s.toCharArray()) {
if (c == '(')
stack.push(')');
else if (c == '{')
stack.push('}');
else if (c == '[')
stack.push(']');
else if (stack.isEmpty() || stack.pop() != c)
return false;
}
return stack.isEmpty();
}