Числа OCR

Числа OCR

Середня

Вказівки

Дано сітку 3 x 4 з вертикальних рисок, підкреслень і пробілів. Визначмо, яке число вона зображає, або чи воно спотворене.

Крок перший

Спочатку перетворімо простий двійковий шрифт на рядок тексту (англ. string), що містить 0 або 1.

Двійковий шрифт утворюють вертикальні риски й підкреслення; він має чотири рядки у висоту та три стовпці завширшки.

     _   #
    | |  # zero.
    |_|  #
         # the fourth row is always blank

Перетворюється на "0"

         #
      |  # one.
      |  #
         # (blank fourth row)

Перетворюється на "1"

Якщо вхідні дані мають правильний розмір, але не розпізнаються, ваша програма повинна повертати '?'

Якщо вхідні дані мають неправильний розмір, ваша програма повинна повертати помилку.

Крок другий

Оновіть свою програму, щоб вона розпізнавала багатосимвольні двійкові рядки тексту, замінюючи спотворені числа на ?

Крок третій

Оновіть свою програму, щоб вона розпізнавала всі числа від 0 до 9, як окремо, так і в складі більшого рядка тексту.

 _
 _|
|_

Перетворюється на "2"

      _  _     _  _  _  _  _  _  #
    | _| _||_||_ |_   ||_||_|| | # decimal numbers.
    ||_  _|  | _||_|  ||_| _||_| #
                                 # fourth line is always blank

Перетворюється на "1234567890"

Крок четвертий

Оновіть свою програму, щоб вона обробляла кілька чисел, по одному на рядок. Під час перетворення кількох рядків зʼєднуйте їх комами.

    _  _
  | _| _|
  ||_  _|

    _  _
|_||_ |_
  | _||_|

 _  _  _
  ||_||_|
  ||_| _|

Перетворюється на "123,456,789".

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Haskell Exercism

Час розпочати Числа OCR?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Haskell, а також 107 вправ та справжнє наставництво від людей, і все це безкоштовно.