leetcode_有效的括号

51 阅读1分钟

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

示例 1:

输入: s = "()"
输出: true

示例 2:

输入: s = "()[]{}"
输出: true

示例 3:

输入: s = "(]"
输出: false

示例 4:

输入: s = "([)]"
输出: false

示例 5:

输入: s = "{[]}"
输出: true
func isValid(s string) bool {
   var charMap = map[rune]rune{
      '(': ')',
      '{': '}',
      '[': ']',
   }
   var stack []rune
   for _, c := range s {
      switch c {
      case '(':
         fallthrough
      case '{':
         fallthrough
      case '[':
         stack = append(stack, c)
      default:
         if len(stack) > 0 {
            temp := stack[len(stack)-1]
            stack = stack[:len(stack)-1]
            if c != charMap[temp] {
               return false
            }
         } else {
            return false
         }

      }
   }
   return len(stack) == 0
}