Reconhecimento de caracteres — Que horas são?
Como programador em um laboratório forense, pediram que você escrevesse uma função para decodificar uma imagem bitmap de um relógio digital e determinar que horas eram quando a imagem foi criada. A imagem bitmap foi convertida em uma sequência de dígitos binários 0 ou 1, em que 0 representa um pixel de fundo branco e 1 representa um pixel preto. Você deve converter essa sequência binária em um horário, expresso em horas e minutos, no formato hh:mm (por exemplo, 09:47).
O mostrador do relógio exibe o horário em preto sobre um fundo branco, e cada caractere tem três células de largura e cinco células de profundidade. Observe que há um espaço entre os números, representado por uma coluna de células vazias:



Cada imagem tem 17 bits de largura por 5 bits de profundidade. Cada linha é codificada como uma sequência de 17 caracteres de 1 e 0, e as cinco linhas são então concatenadas em uma sequência de 85 caracteres que é passada para sua função. Por exemplo, a imagem acima é codificada da seguinte forma:
row 1 = "11100100001110111"
row 2 = "10101100100010100"
row 3 = "10100100001110111"
row 4 = "10100100100010001"
row 5 = "11101110001110111"
bitmap -> "1110010000111011110101100100010100101001000011101111010010010001000111101110001110111"Se você examinar cuidadosamente os mapas das linhas acima, deverá conseguir ver os dígitos do relógio no padrão de 1. As três primeiras colunas mostram o número 0; em seguida há uma coluna composta apenas por 0, representando um espaço entre os números; depois vêm outras três colunas representando o número 1, seguidas por três colunas representando o caractere :, depois três colunas representando 3, uma coluna de zeros representando um espaço e, por fim, três colunas representando o número 5. O horário resultante é 01:35.
Exemplo
WhatsTheTime("1110010000111011110101100100010100101001000011101111010010010001000111101110001110111") ➞ "01:35"Observações
Não há erros na codificação, portanto você não precisa verificar se há correspondências aproximadas.