95 octets actuellement en python
I,V,X,L,C,D,M,R,r=1,5,10,50,100,500,1000,vars(),lambda x:reduce(lambda T,x:T+R[x]-T%R[x]*2,x,0)
Voici quelques résultats de tests, cela devrait fonctionner pour 1 à 3999 (en supposant que l'entrée est uniquement un caractère valide).
>>> r("I")
1
>>> r("MCXI")
1111
>>> r("MMCCXXII")
2222
>>> r("MMMCCCXXXIII")
3333
>>> r("MMMDCCCLXXXVIII")
3888
>>> r("MMMCMXCIX")
3999
Et cela ne fait pas double emploi avec cette , celui-ci est inversé.
Est-il donc possible de faire plus court en Python, ou d'autres langages comme ruby peuvent-ils être plus courts ?