Numerais romanos
Crie uma função que receba um numeral romano como string e o converta em um inteiro, retornando o resultado. A função deve funcionar para todos os numerais romanos que representem inteiros positivos menores que 4000.
A tabela a seguir mostra como os dígitos serão representados na notação de numerais romanos:
| Valor posicional | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| Unidades | I | II | III | IV | V | VI | VII | VIII | IX |
| Dezenas | X | XX | XXX | XL | L | LX | LXX | LXXX | XC |
| Centenas | C | CC | CCC | CD | D | DC | DCC | DCCC | CM |
| Milhares | M | MM | MMM | - | - | - | - | - | - |
Exemplos
parseRomanNumeral("VII") ➞ 7
parseRomanNumeral("DCLXXIX") ➞ 679
parseRomanNumeral("MMMCMV") ➞ 3905Observações
- Todas as letras estarão em maiúsculas.
- Considere que todas as entradas serão numerais romanos bem formados.
- Embora você provavelmente pudesse resolver isso verificando separadamente cada uma dessas sequências dentro da string, existe uma maneira mais inteligente. Pense no valor numérico de cada letra individual e em como a letra imediatamente seguinte pode afetar o valor numérico dessa letra.