Zagadki algorytmiczne #2 – parser wyrażeń liczb rzymskich

UWAGA, ruszył Humble Book Bundle na serię Cookbok wydawnictwa O'REILLY

romanOtrzymujesz jako tekst poprawne wyrażenie matematyczne, jednak zapisane liczbami rzymskimi.
Twoim wyzwaniem jest zwrócić liczbę całkowitą będą wynikiem wyrażenia w systemie dziesiętnym. Algorytm powinien składać się z jak najmniejszej ilości znaków.

Wyrażenie może zawierać następujące znaki:

  • operatory: '+', '/', '-', '*', '=', '(', ')'
  • cyfry: 'C', 'D', 'I', 'L', 'M', 'V', 'X'

Przykłady:

  • RomanExpression("V+V=") = 10, as 5 + 5 = 10
  • RomanExpression("IX=") = 9, as 9 = 9
  • RomanExpression("(III+VI)*CM=") = 8100, as (3 + 6) * 900 = 8100
  • Dane wejściowe: string
    • Poprawne wyrażenie matematyczne do rozwiązania
  • Dane wyjściowe: integer
    • Wynik wyrażenia.

Sprawdź się, spróbuj sam rozwiązać!

Uwaga, poniżej przedstawionych jest kilka rozwiązań. Nie przewijaj jeśli sam chcesz pogłówkować.

Rozwiązania z minimalną ilością znaków

 

Java:

 

570 znaków:

 

636 znaków:

 

C++:

418 znaków:

 

419 znaków:

 

Javascript:

152 znaków:

 

163 znaków:

 

Python:

I jak zwykle w potyczkach algorytmicznych, w których celem jest napisanie algorytmu z wykorzystaniem jak najmniejszej ilości znaków wygrywa Python

143 znaków:

158 znaków:

 

 

UWAGA, ruszył Humble Book Bundle na serię Cookbok wydawnictwa O'REILLY

To również może Cię zainteresować:

  • Zagadki algorytmiczne #3 – połowa sumy tablicyZagadki algorytmiczne #3 – połowa sumy tablicy Otrzymujesz listę liczb całkowitych. Twoim zadaniem jest zwrócenie jednego z jej elementów x, który spełnia warunek 2 * x = suma pozostałych elementów. Masz zagwarantowane, że element x […]
  • Raspberry PI 2, nauka podstaw Pythona 3Raspberry PI 2, nauka podstaw Pythona 3 W jednym z ostatnich wpisów zebrałem sobie źródła wiedzy do nauki Pythona, a w międzyczasie kupiłem Raspberry PI 2. Jedno z drugim jest mocno powiązane, ponieważ minikomputer standardowo […]
  • Tricki bitoweTricki bitowe W tym miejscu postaram się zebrać zbiór użytecznych operacji na bitach. Z biegiem czasu lista będzie aktualizowana. Zachęcam do przesyłania własnych propozycji! Znane i mniej znane […]
  • Linkedin – czyli co w trawie piszczy i skąd wiatr wiejeLinkedin – czyli co w trawie piszczy i skąd wiatr wieje Linkedin, Goldenline, a w ostatnim czasie dedykowane grupy na Facebooku. To główne źródła gdzie można znaleźć najnowsze oferty pracy. Pojawia się ich mnóstwo. W dzisiejszych czasach […]
  • Testy PHP 7.0.0beta2 w WindowsTesty PHP 7.0.0beta2 w Windows Dziesiątego lipca 2015 została wydana wersja PHP 7.0.0 Beta1. Na dzień dzisiejszy dostępna jest już do pobrania Beta3 (6 sierpnia 2015), a najnowsze źródła i wersje skompilowane można […]
  • Zagadki algorytmiczne #1Zagadki algorytmiczne #1 Lubicie zagadki algorytmiczne? Jeśli tak, to zachęcam do wypróbowania https://codefights.com (jeśli jeszcze nie jest któremuś z Was znana ta platforma). Przypominam również o odbywających […]

Dodaj komentarz