lc-go/solutions/0/q20/solution.go
2025-12-23 19:00:11 +09:00

32 lines
586 B
Go

package q20
func isValid(s string) bool {
stack := make([]byte, 0, len(s)/2)
for i := range len(s) {
switch s[i] {
case '(', '[', '{':
stack = append(stack, s[i])
case ')':
if len(stack) == 0 || stack[len(stack)-1] != '(' {
return false
}
stack = stack[:len(stack)-1]
case ']':
if len(stack) == 0 || stack[len(stack)-1] != '[' {
return false
}
stack = stack[:len(stack)-1]
case '}':
if len(stack) == 0 || stack[len(stack)-1] != '{' {
return false
}
stack = stack[:len(stack)-1]
}
}
return len(stack) == 0
}
var _ = isValid