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

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:

 

 

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

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *