力ボタン(LeetCode 13)ローマ数字回転整数python

5327 ワード

タイトル
構想
ローマ数字は、特殊な4,9,40,90などを除いて、現在のVIII(8)のような右より大きいものを満たし、V I I Iから構成されているので、現在が彼の右より大きいと判断し、アルファベット自体の値を直接加えればよい.現在の値が右より小さい場合は、IV(4)、I Vは5-1を表す4,9などの計算を説明する.したがって、現在のアルファベット値が右より小さい場合は、現在のアルファベット値を減算することができます.境界条件を処理するとokになります.
コード#コード#
class Solution:
    def romanToInt(self, s: str) -> int:
        dic={"I":1,"IV":4,"V":5,"IX":9,"X":10,"XL":40,"L":50,"XC":90,"C":100,"CD":400,"D":500,"CM":900,"M":1000}
        l=len(s)
        ans=0
        for i in range(l):
            if i+1 !=l:
                if dic[s[i]] >= dic[s[i+1]]:
                    ans=ans+dic[s[i]] 
                else:
                    ans=ans-dic[s[i]]
            else:
                ans=ans+dic[s[i]]
        return ans