A legjobb barátod, Marta nemrég kapta meg álmai állását egy helyi történeti múzeum gyűjteményénél. Mivel tudja, hogy érdekel a programozás, bizalmasan elmesél neked egy problémát a munkájából: hamarosan kiállítás nyílik a számítástechnika történetéről. Egy helyi egyetem matematikai tanszéke több doboznyi történelmi nyomtatványt adományozott, de mivel a dokumentumok rossz állapotban vannak, úgy döntöttek, hogy digitalizálják a szöveget. A régi egyetemi nyomtatóban azonban volt néhány furcsaság abban, ahogy a szöveget megjelenítette, és a barátod szívesen venné a segítségedet, hogy sikeresen kinyerjétek az adatokat.
Az optikai karakterfelismerés (OCR) olyan szoftver, amely a szövegről készült képeket géppel olvasható szöveggé alakítja.
Adott egy karakterekből álló rács, amely számjegyeket ábrázol: alakítsd át a rácsot számjegyekből álló stringgé.
Ha a rács több cellsorból áll, akkor a kimenetben a sorokat "," választja el egymástól.
"|"), aláhúzásokkal ("_") és szóközökkel (" ") rajzolják ki."?"-t arra a karakterre.A következő bemenetből (a megjegyzések nélkül) "1234567890" lesz.
_ _ _ _ _ _ _ _ #
| _| _||_||_ |_ ||_||_|| | # Decimal numbers.
||_ _| | _||_| ||_| _||_| #
# The fourth line is always blank,
A következő bemenetből "123,456,789" lesz.
_ _
| _| _|
||_ _|
_ _
|_||_ |_
| _||_|
_ _ _
||_||_|
||_| _|
A rácsot nullával lezárt stringként ábrázoljuk, minden sor végén egy újsor karakter áll.
| Regiszter | Használat | Típus | Leírás |
|---|---|---|---|
$a0 |
bemenet | cím | nullával lezárt bemeneti string |
$a1 |
bemenet/kimenet | cím | nullával lezárt eredmény string, üres, ha a rács méretei érvénytelenek |
$v0 |
kimenet | egész szám | a rács állapota (0 = ok, -1 = invalid columns, -2 = invalid rows) |
$t0-9 |
ideiglenes | bármilyen | ideiglenes tárolásra |
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) MIPS Assembly nyelvet 70 feladat segítségével, valódi emberi mentorálással, mindez ingyen.