Sua melhor amiga Marta conseguiu recentemente o emprego dos sonhos trabalhando com as coleções de um museu de história local. Sabendo do seu interesse por programação, ela te confidencia um problema no trabalho por causa de uma exposição futura sobre a história da computação. O departamento de matemática de uma universidade local havia doado várias caixas de impressos históricos, mas, diante do estado precário dos documentos, decidiram digitalizar o texto. No entanto, a impressora antiga da universidade tinha algumas peculiaridades na forma como representava o texto, e sua amiga bem que poderia contar com sua ajuda para extrair os dados com sucesso.
Reconhecimento Ótico de Caracteres, ou OCR, é um software que converte imagens de texto em texto legível por máquina.
Dada uma grade de caracteres que representa alguns dígitos, converta a grade em uma string de dígitos.
Se a grade tiver várias linhas de casas, as linhas devem ser separadas na saída com uma ",".
"|"), sublinhados ("_") e espaços (" ")."?" para esse caractere.A entrada a seguir (sem os comentários) é convertida em "1234567890".
_ _ _ _ _ _ _ _ #
| _| _||_||_ |_ ||_||_|| | # Decimal numbers.
||_ _| | _||_| ||_| _||_| #
# The fourth line is always blank,
A entrada a seguir é convertida em "123,456,789".
_ _
| _| _|
||_ _|
_ _
|_||_ |_
| _||_|
_ _ _
||_||_|
||_| _|
Defina uma função recognizeDigit como descrito no Passo 1 das instruções, mas faça com que ela reconheça todos os dez dígitos, de 0 a 9. Escolha o que você quiser para os parâmetros e os valores de retorno, mas faça com que ela seja útil como sub-rotina para o passo 2.
Para o Passo 2, defina
func Recognize(string) []string
e implemente-a usando recognizeDigit.
As strings de entrada testadas aqui têm um \n no início de cada linha e nenhum \n no final da última linha. (Isso deixa os literais de string brutos mais legíveis.)
Para ganhar pontos extras, trate os dados mal formatados com elegância.
O que você deve fazer com uma casa incompleta?
Descartar?
Preencher com espaços?
Sinalizar com o caractere "?"?
O que você deve fazer se o primeiro caractere não for \n?
Crie sua conta no Exercism para aprender e dominar Go com 34 conceitos165 exercícios e mentoria humana de verdade, tudo de graça.