import scala.collection.mutable
object Solution extends App
{
var mappings = new mutable.HashMap[Char, Char]
this.mappings.put(')', '(')
this.mappings.put('}', '{')
this.mappings.put(']', '[')
var reversedMappings = new mutable.HashMap[Char, Char]
this.reversedMappings.put('(', ')')
this.reversedMappings.put('{', '}')
this.reversedMappings.put('[', ']')
def isValid(s: String): Boolean = {
val stack = new mutable.Stack[Char]()
for (i <- 0 until s.length) {
val c = s.charAt(i)
if (mappings.contains(c)) {
var topElement:Char = '0'
if (stack.isEmpty)
topElement = '#'
else topElement = stack.pop
if (topElement != mappings(c))
return false
}
else if(reversedMappings.contains(c)) {
stack.push(c)
}
}
stack.isEmpty
}
val string = "let output = function () { console.log('Anonymous function'); };"
println(isValid(string))
}