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("("))
}