現在Pythonで95バイト
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)
これがいくつかのテスト結果です。1から3999で動作するはずです(入力が有効なcharのみであると仮定します)
>>> r("I")
1
>>> r("MCXI")
1111
>>> r("MMCCXXII")
2222
>>> r("MMMCCCXXXIII")
3333
>>> r("MMMDCCCLXXXVIII")
3888
>>> r("MMMCMXCIX")
3999
そして、これはこれと重複していません、これは逆になっています。
それで、Pythonでそれを短くすることは可能ですか、それともrubyのような他の言語をそれより短くすることができますか?