How to check if a string contains only valid parentheses (open close same type (), {}, []) in Scala

1 Answer

0 votes
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
 
*/

 



answered Apr 25, 2025 by avibootz
...