O soroban japonês é um tipo de ábaco (ferramenta de contagem) usado deslizando contas enfiadas para cima e para baixo pelos fios. O soroban é dividido em uma parte superior (onde cada conta vale 5 unidades) e uma parte inferior (onde as contas valem 1 unidade). Da direita para a esquerda, as unidades aumentam por um fator de 10. Se usarmos "O" para uma conta e "|" para mostrar o fio, podemos representar o soroban da seguinte forma:
OOOOOOO
||||||| Upper deck
------- Dividing line
||||||| Lower deck
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOOPara ler o número, contamos o valor correspondente à quantidade de contas que foram movidas em direção à linha divisória. Os valores das partes superior e inferior são somados. No exemplo abaixo, o número é 30651:
OOOO||O
||||OO|
-------
||O|O|O
OOOO|O|
OOOOOOO
OO|OOOO
OOOOOOO
0000550 Upper deck
0030101 Lower deck
30651 TotalDado um array de strings que representa o soroban, retorne o número exibido.
soroban([
"OOOO||O",
"||||OO|",
"-------",
"|||O|OO",
"OOOOOOO",
"OOO|OOO",
"OOOOO|O",
"OOOOOO|"
]) ➞ 2584
soroban([
"||OO||O",
"OO||OO|",
"-------",
"OO|OO||",
"OOO|OOO",
"OOOO|OO",
"|OOOOOO",
"O|OOOOO"
]) ➞ 8901750Para obter mais informações sobre como usar um soroban, consulte a aba Resources.