Implementing a valid parentheses checker in Swift involves using a stack to keep track of opening parentheses and matching them with closing parentheses. Here’s a simple example of how to achieve this:
func isValidParentheses(_ s: String) -> Bool {
var stack = [Character]()
for char in s {
if char == "(" || char == "{" || char == "[" {
stack.append(char)
} else if char == ")" {
if stack.isEmpty || stack.removeLast() != "(" {
return false
}
} else if char == "}" {
if stack.isEmpty || stack.removeLast() != "{" {
return false
}
} else if char == "]" {
if stack.isEmpty || stack.removeLast() != "[" {
return false
}
}
}
return stack.isEmpty
}
// Example usage:
print(isValidParentheses("{[()]}")) // true
print(isValidParentheses("{[(])}")) // false
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?