import Foundation
func stringContainsValidParentheses(_ s: String) -> Bool {
var arr: [Character] = [] // Array to store expected closing parentheses
for ch in s {
switch ch {
case "(":
arr.append(")")
case "{":
arr.append("}")
case "[":
arr.append("]")
case ")", "}", "]":
if arr.isEmpty || arr.removeLast() != ch {
return false // Mismatch or empty arr
}
default:
break
}
}
// If the arr is empty, all parentheses are valid
return arr.isEmpty
}
print(stringContainsValidParentheses("(){}[]"))
print(stringContainsValidParentheses("([{}])"))
print(stringContainsValidParentheses("(){}[]()(){}"))
print(stringContainsValidParentheses("(]"))
print(stringContainsValidParentheses("({[)]}"))
/*
run:
true
true
true
false
false
*/