Números OCR

Números OCR

Médio

Instruções

Dada uma grade 3 x 4 de barras verticais, sublinhados e espaços, determine qual número está representado, ou se ele está ilegível.

Primeiro passo

Para começar, converta uma fonte binária simples em uma string contendo 0 ou 1.

A fonte binária usa barras verticais e sublinhados, com quatro linhas de altura e três colunas de largura.

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

É convertido em "0"

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

É convertido em "1"

Se a entrada tiver o tamanho correto, mas não for reconhecível, seu programa deve retornar '?'

Se a entrada tiver o tamanho incorreto, seu programa deve retornar um erro.

Segundo passo

Atualize seu programa para reconhecer strings binárias de vários caracteres, substituindo os números ilegíveis por ?

Terceiro passo

Atualize seu programa para reconhecer todos os números de 0 a 9, tanto individualmente quanto como parte de uma string maior.

 _
 _|
|_

É convertido em "2"

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

É convertido em "1234567890"

Quarto passo

Atualize seu programa para lidar com vários números, um por linha. Ao converter várias linhas, junte as linhas com vírgulas.

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

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

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

É convertido em "123,456,789".

Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Números OCR?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.