20. 有效的括號

gdut17_2發表於2024-06-07
package main

import "fmt"

func isValid(s string) bool {
	if len(s) <= 1 {
		return false
	}
	chMap := map[byte]byte{
		'{': '}',
		'[': ']',
		'(': ')',
	}
	stack := []byte{}
	for i := 0; i < len(s); i++ {
		if s[i] == '{' || s[i] == '(' || s[i] == '[' {
			stack = append(stack, s[i])
		} else {
			if len(stack) == 0 {
				return false
			}

			top := stack[len(stack)-1]
			if chMap[top] != s[i] {
				return false
			}
			stack = stack[:len(stack)-1]
		}
	}
	return len(stack) == 0
}

func main() {
	fmt.Println(isValid("()[]{}"))
	fmt.Println(isValid("()[]{]"))
	fmt.Println(isValid("("))
}

相關文章