0%

有效的括号

【题目】

给定一个只包含’(,’)’,’{‘,’},’[‘,’]’ 的字符串,判断字符串是否有效

【难度】

★★☆☆

【解答】

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
}