object ValidParentheses {
def stringContainsValidParentheses(s: String): Boolean = {
val stack = scala.collection.mutable.Stack[Char]() // Stack to track closing parentheses
for (ch <- s) {
ch match {
case '(' => stack.push(')')
case '{' => stack.push('}')
case '[' => stack.push(']')
case ')' | '}' | ']' =>
if (stack.isEmpty || stack.pop() != ch) return false
case _ =>
}
}
stack.isEmpty // Return true if the stack is empty, indicating valid parentheses
}
def main(args: Array[String]): Unit = {
println(stringContainsValidParentheses("(){}[]"))
println(stringContainsValidParentheses("([{}])"))
println(stringContainsValidParentheses("(){}[]()(){}"))
println(stringContainsValidParentheses("(]"))
println(stringContainsValidParentheses("({[)]}"))
}
}
/*
run:
true
true
true
false
false
*/