[LeetCode] 20. Valid Parentheses
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
Analyse:
Solution:
class Solution {
func isValid(_ s: String) -> Bool {
let leftChars:[Character] = ["(", "{", "["];
let rightChars:[Character] = [")", "}", "]"];
var stack:[Character] = [];
let chars = Array(s);
if(chars.count % 2 != 0) {
return false;
}
for i in 0..<chars.count {
let char = chars[i];
if(leftChars.index(of:char) != nil) {
stack.append(char);
}
else if(rightChars.index(of:char) != nil) {
if(stack.count == 0) {
return false;
}
if(leftChars.index(of:stack.last!) == rightChars.index(of:char)) {
stack.removeLast();
}
else {
return false;
}
}
}
if(stack.count == 0) {
return true;
}
return false;
}
}
Last updated