【题目】
给定一个只包含’(,’)’,’{‘,’},’[‘,’]’ 的字符串,判断字符串是否有效
【难度】
★★☆☆
【解答】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package main
import "fmt"
func main() { fmt.Println(IsValid("{({})[]}")) }
func IsValid(str string) bool { m := map[uint8]uint8{')': '(', ']': '[', '}': '{'} stack := make([]uint8, 0) for i := 0; i < len(str); i++ { if len(stack) == 0 { if str[i] == ')' || str[i] == '}' || str[i] == ']' { return false } stack = append(stack, str[i]) continue }
if m[str[i]] == stack[len(stack)-1] { stack = stack[0 : len(stack)-1] } else { stack = append(stack, str[i]) } }
if len(stack) != 0 { return false }
return true }
|