How to check if two equal-length strings are at least 50% equal in Scala

1 Answer

0 votes
object CompareStrings:

  def atLeastHalfEqual(s1: String, s2: String): Boolean =
    // Check equal length and non‑empty
    if s1.isEmpty || s1.length != s2.length then
      false
    else
      var matches = 0
      val len = s1.length

      // Compare character‑by‑character (Pascal semantics)
      for i <- 0 until len do
        if s1(i) == s2(i) then
          matches += 1

      // matches / len ≥ 0.5  →  2 * matches ≥ len
      matches * 2 >= len

  @main def run(): Unit =
    println(atLeastHalfEqual("abcde", "axcfz")) 
    println(atLeastHalfEqual(
      "javascript c# c++ c python",
      "javascript c# r c rust sql"
    ))




/*
run:

false
true

*/

 



answered Dec 21, 2025 by avibootz

Related questions

...