Наша найкраща подруга Марта нещодавно отримала роботу своєї мрії: вона працює з колекціями місцевого історичного музею. Знаючи про наше зацікавлення програмуванням, вона розповідає нам про проблему на роботі, повʼязану з майбутньою виставкою про історію обчислювальної техніки. Кафедра математики місцевого університету передала кілька коробок історичних роздруківок, але через поганий стан документів було вирішено оцифрувати текст. Однак старий університетський принтер мав деякі дивацтва в тому, як він представляв текст, тож наша допомога стала б у пригоді нашій подрузі, щоб успішно видобути дані.
Оптичне розпізнавання символів, або OCR, - це програмне забезпечення, яке перетворює зображення тексту на текст, який може прочитати компʼютер.
Перетворіть сітку символів, що зображують якісь цифри, на рядок тексту (англ. string) із цих цифр.
Якщо сітка містить кілька ліній комірок, ці лінії потрібно розділити у виводі за допомогою ",".
"|"), підкреслень ("_") і пробілів (" ")."?" замість цього символу.Наведені нижче вхідні дані (без коментарів) перетворюються на "1234567890".
_ _ _ _ _ _ _ _ #
| _| _||_||_ |_ ||_||_|| | # Decimal numbers.
||_ _| | _||_| ||_| _||_| #
# The fourth line is always blank,
Наведені нижче вхідні дані перетворюються на "123,456,789".
_ _
| _| _|
||_ _|
_ _
|_||_ |_
| _||_|
_ _ _
||_||_|
||_| _|
Визначте функцію recognizeDigit так, як описано в кроці 1 інструкцій, але зробіть так, щоб вона розпізнавала всі десять цифр від 0 до 9. Параметри й повернені значення виберіть на власний розсуд, але подбайте, щоб її можна було використати як підпрограму на кроці 2.
Для кроку 2 визначте,
func Recognize(string) []string
і реалізуйте її за допомогою recognizeDigit.
Вхідні рядки тексту (англ. string), які тут перевіряються, мають \n на початку кожного рядка й не мають \n у кінці останнього рядка. (Так сирі рядкові літерали читаються зручніше.)
За додаткові бали акуратно обробіть дані з порушеним форматуванням.
Що робити з неповною коміркою?
Відкинути її?
Доповнити пробілами?
Позначити її символом "?"?
А що робити, якщо перший символ не \n?
Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції165 вправ та справжнє наставництво від людей, і все це безкоштовно.