[LeetCode] 20. Valid Parentheses
Input: "()"
Output: trueInput: "()[]{}"
Output: trueInput: "(]"
Output: falseInput: "([)]"
Output: falseInput: "{[]}"
Output: trueLast updated
Input: "()"
Output: trueInput: "()[]{}"
Output: trueInput: "(]"
Output: falseInput: "([)]"
Output: falseInput: "{[]}"
Output: trueLast updated
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;
}
}