题目链接

思路

左括号入栈,右括号出栈,注意判断栈空

代码

  1. import java.util.*
  2. class Solution {
  3. fun isValid(s: String): Boolean {
  4. val stack = Stack<Char>()
  5. s.forEach {
  6. if (it == '(' || it == '{' || it == '[') stack.push(it)
  7. else {
  8. when(it) {
  9. ')' -> {
  10. if (!stack.empty() && stack.peek() == '(') stack.pop()
  11. else return false
  12. }
  13. '}' -> {
  14. if (!stack.empty() && stack.peek() == '{') stack.pop()
  15. else return false
  16. }
  17. ']' -> {
  18. if (!stack.empty() && stack.peek() == '[') stack.pop()
  19. else return false
  20. }
  21. }
  22. }
  23. }
  24. return stack.empty()
  25. }
  26. }