leetcode_13.ローマ数字回転整数(python)


ローマ数字には、I、V、X、L、C、D、Mの7文字が含まれています.文字値I 1 V 5 X 10 L 50 C 100 D 500 M 1000は、例えば、ローマ数字2をIIと書くと、2つの並列の1となる.12はXIIと書きます.つまりX+IIです.27 XXVIIと書くと、XX+V+IIとなります.通常、ローマ数字の中で小さい数字は大きな数字の右側にあります.しかし、例えば4はIIIではなくIVと書くという特例もある.数字1は数字5の左側にあり、表す数は大数5から小数1を減らした数値4に等しい.同様に、数字9はIXとして表される.この特殊な規則は以下の6つの場合にのみ適用される:IはV(5)とX(10)の左側に置いて4と9を表すことができる.XはL(50)とC(100)の左側に置いて40と90を表すことができる.CはD(500)とM(1000)の左側に置いて400と900を表すことができる.ローマ数字を指定し、整数に変換します.入力は1~3999の範囲であることを確認します.例1:入力:「III」出力:3例2:入力:「IV」出力:4例3:入力:「IX」出力:9例4:入力:「LVIII」出力:58解釈:L=50、V=5、III=3.例5:入力:「MCMXCIV」出力:1994解釈:M=1000、CM=900、XC=90、IV=4.基本思想:まずHashMapを確立して記号と値をマッピングし、文字列に対して左から右に来て、現在の文字が表す値が右より小さくなければ、その値を加えます.そうでない場合は、この値を減算します.このように一番左の数まで押すと、最終的に得られる結果が答えです.HashMap:HashMapは、Key-Valueキー値ペアを格納するためのセットであり、各キー値ペアはEntryとも呼ばれます.これらのキー値対(Entry)は1つの配列に分散して格納され、この配列がHashMapの主幹である.HashMap配列の各要素の初期値はNullである.コードは以下の通りである.
class Solution:
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        //   
        a = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}        
        ans=0        
        for i in range(len(s)): 
        //s[i]     ,a[s[i]]                      
            if i

例えば、「IV」ローマ数字4を入力します.1回目のサイクルで得られた結果は、0-1=-1 2回目のサイクルで得られた結果は、-1+5=4で得られた結果です.