RosettaCodeData/Task/Balanced-brackets/Scala/balanced-brackets-2.scala

29 lines
600 B
Scala
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
import scala.util.Random.shuffle
2013-10-27 22:24:23 +00:00
2015-02-20 00:35:01 -05:00
object BalancedBracketsApp extends App {
2013-10-27 22:24:23 +00:00
2015-02-20 00:35:01 -05:00
for (length <- 0 until 10) {
val str = randomBrackets(length)
if (is_balanced(str))
println(s"$str - ok")
else
println(s"$str - NOT ok")
2013-10-27 22:24:23 +00:00
}
2015-02-20 00:35:01 -05:00
def randomBrackets(length: Int): String =
shuffle(("[]" * length).toSeq).mkString
2013-10-27 22:24:23 +00:00
2015-02-20 00:35:01 -05:00
def isBalanced(bracketString: String): Boolean = {
2013-10-27 22:24:23 +00:00
var balance = 0
2015-02-20 00:35:01 -05:00
for (char <- bracketString) {
2013-10-27 22:24:23 +00:00
char match {
case '[' => balance += 1
case ']' => balance -= 1
}
if (balance < 0) return false;
}
balance == 0
}
}