Números OCR

Números OCR

Médio

Instruções

Dada uma grelha de 3 x 4 de barras verticais, sublinhados e espaços, determina que número está representado ou se está ilegível.

Primeiro passo

Para começar, converte um tipo de letra binário simples numa string que contém 0 ou 1.

O tipo de letra binário 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 os dados de entrada tiverem o tamanho correto, mas não forem reconhecíveis, o teu programa deve devolver '?'

Se os dados de entrada tiverem o tamanho errado, o teu programa deve devolver um erro.

Segundo passo

Atualiza o teu programa para reconhecer strings binárias com vários carateres, substituindo os números ilegíveis por ?

Terceiro passo

Atualiza o teu programa para reconhecer todos os números de 0 a 9, tanto individualmente como fazendo parte de uma string maior.

 _
 _|
|_

É convertido em "2"

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

É convertido em "1234567890"

Quarto passo

Atualiza o teu programa para processar vários números, um por linha. Quando converteres várias linhas, junta-as com vírgulas.

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

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

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

É convertido em "123,456,789".

Editar via GitHub A ligação abre numa nova janela ou separador
Haskell Exercism

Estás pronto para começar Números OCR?

Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.