MCPcopy Create free account
hub / github.com/VanjaRo/LeetCode / isValid

Function isValid

tasks/20.go:12–55  ·  view source on GitHub ↗
(s string)

Source from the content-addressed store, hash-verified

10}
11
12func isValid(s string) bool {
13 // openedRound := 0
14 // openedSquare := 0
15 // openedFigure := 0
16 var opened []byte
17 if s[0] != ')' && s[0] != ']' && s[0] != '}' {
18 opened = append(opened, s[0])
19 } else {
20 return false
21 }
22
23 for i := 1; i < len(s); i++ {
24 switch s[i] {
25 case ')':
26 if len(opened) > 0 && abs(')'-opened[len(opened)-1]) < 3 {
27 opened = opened[:len(opened)-1]
28 } else {
29 return false
30 }
31
32 case ']':
33 if len(opened) > 0 && abs(']'-opened[len(opened)-1]) < 3 {
34 opened = opened[:len(opened)-1]
35 } else {
36 return false
37 }
38
39 case '}':
40 if len(opened) > 0 && abs('}'-opened[len(opened)-1]) < 3 {
41 opened = opened[:len(opened)-1]
42 } else {
43 return false
44 }
45 default:
46 opened = append(opened, s[i])
47 }
48
49 }
50 if len(opened) > 0 {
51 return false
52 }
53 return true
54
55}
56
57func abs(a byte) byte {
58 if a > 0 {

Callers 1

mainFunction · 0.85

Calls 1

absFunction · 0.85

Tested by

no test coverage detected