DEV Community

Discussion on: Daily Challenge #23 - Morse Code Decoder

Collapse
ganderzz profile image
Dylan Paulus

Similar solution. Nim.

import strutils, sequtils, sugar, tables

const morseCodeMap = {
  ".-": "A",
  "-.": "N",
  "-...": "B",
  "---": "O",
  "-.-.": "C",
  ".--.": "P",
  "-..": "D",
  "--.-": "Q",
  ".": "E",
  ".-.": "R",
  "..-.": "F",
  "...": "S",
  "--.": "G",
  "-": "T",
  "....": "H",
  "..-": "U",
  "..": "I",
  "...-": "V",
  ".---": "J",
  ".--": "W",
  "-.-": "K",
  "-..-": "X",
  ".-..": "L",
  "-.--": "Y",
  "--": "M",
  "--..": "Z",
  ".----": "1",
  "-....": "6",
  "..---": "2",
  "--...": "7",
  "...--": "3",
  "---..": "8",
  "....-": "4",
  "----.": "9",
  ".....": "5",
  "-----": "0",
}.toTable()

proc morseCodes(input: string): string =
  return input.splitWhitespace().map((x) => morseCodeMap.getOrDefault(x,
      "")).join("")

when isMainModule:
  const code = ".--. . . .--."

  echo morseCodes(code)