Post

Leetcode - 20. Valid Parentheses

Leetcode - 20. Valid Parentheses

Hits

  • Given a string s containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

    An input string is valid if:

    Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Every close bracket has a corresponding open bracket of the same type.

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func isValid(s string) bool {
    closeToOpenMap := map[rune]rune{
        ')': '(',
        '}': '{',
        ']': '[',
    }

    stack := []rune{}
    for _, char := range s {
        switch char{
            case '(', '[', '{':
                stack = append(stack, char)
            case ')', ']', '}':
                if len(stack)==0 || stack[len(stack)-1] != closeToOpenMap[char]{
                    return false
                }
                stack = stack[:len(stack)-1]
        }

    }
    return len(stack)==0
    
}
This post is licensed under CC BY 4.0 by the author.