Leetcode - 20. Valid Parentheses
Leetcode - 20. Valid Parentheses
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.