Share
Given a string 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.
Note that an empty string is also considered valid.
Example 1:
Input: “()”
Output: true
Example 2:
Input: “()[]{}”
Output: true
Example 3:
Input: “(]”
Output: false
Example 4:
Input: “([)]”
Output: false
Example 5:
Input: “{[]}”
Output: true
func isValid(s string) bool {
para := map[string]string{")": "(", "}": "{", "]": "["}
stack := []string{}
for _, v := range s {
k := string(v)
if _, ok := para[k]; !ok {
stack = append(stack, k)
} else {
if len(stack) == 0 || stack[len(stack)-1] != para[k] {
return false
}
stack = stack[:len(stack)-1]
}
}
return len(stack) == 0
}