How to decode Leet Speak (where numbers resemble letters (7->T, 1->I, 5->S, 3 -> E)) in Scala

1 Answer

0 votes
// 7H15 M3554G3 is written in leet speak, where numbers resemble letters.
// place each leetspeak character with its matching letter
// (7 -> T, 1 -> I, 5 -> S, 3 -> E) and build a new string
// 7H15 -> THIS | M3554G3 -> MESSAGE
//
// Your brain can interpret distorted or number‑substituted letters
// surprisingly well because it recognizes the overall word
// shapes and patterns, not just individual characters.

object LeetSpeakDecoder {

  // ------------------------------------------------------------
  // Convert a single leet character into a normal alphabet letter
  // ------------------------------------------------------------
  def decodeChar(c: Char): Char = c match {
    case '7' => 'T'
    case '1' => 'I'
    case '5' => 'S'
    case '3' => 'E'
    case '4' => 'A'
    case '0' => 'O'
    case _   => c   // keep letters like H, M, G, etc.
  }

  // ------------------------------------------------------------
  // Convert an entire string from leet speak to normal text
  // ------------------------------------------------------------
  def decodeLeetSpeak(s: String): String =
    s.map(decodeChar)

  def main(args: Array[String]): Unit = {

    // Test lines provided by the user
    val lines = List(
      "7H15 M3554G3",
      "53RV35 7O PR0V3",
      "H0W 0UR M1ND5 C4N",
      "D0 4M4Z1NG 7H1NG5!",
      "1MPR3551V3 7H1NG5!",
      "1N 7H3 B3G1NN1NG",
      "17 WA5 H4RD BU7",
      "N0W, Y0UR M1ND 1S",
      "R34D1NG 17",
      "4U70M471C4LLY."
    )

    // Decode and print each line
    lines.foreach(line => println(decodeLeetSpeak(line)))
  }
}


/*
run:

THIS MESSAGE
SERVES TO PROVE
HOW OUR MINDS CAN
DO AMAZING THINGS!
IMPRESSIVE THINGS!
IN THE BEGINNING
IT WAS HARD BUT
NOW, YOUR MIND IS
READING IT
AUTOMATICALLY.

*/

 



answered 4 hours ago by avibootz
...