How to check if a string can be constructed by using the letters of another string in Scala

1 Answer

0 votes
import scala.util.boundary, boundary.break

object Main {

  def canConstruct(str: String, anotherStr: String): Boolean = boundary:
    // ASCII frequency table
    val freq = Array.fill(256)(0)

    // Count characters in anotherStr
    anotherStr.foreach { ch =>
      freq(ch.toInt) += 1
    }

    // Check if str can be constructed
    str.foreach { ch =>
      val idx = ch.toInt
      freq(idx) -= 1
      if (freq(idx) < 0)
        break(false) // Safe non-local exit using boundary/break
    }

    true // Default return value if break is never called

  def main(args: Array[String]): Unit = {
    val str = "hello"
    val anotherStr = "olehhlxyz"

    println(canConstruct(str, anotherStr))
  }
}




/*
run:

true

*/


 



answered Jan 5 by avibootz

Related questions

...