力ボタン(LeetCode 13)ローマ数字回転整数python
5327 ワード
タイトル
構想
ローマ数字は、特殊な4,9,40,90などを除いて、現在のVIII(8)のような右より大きいものを満たし、V I I Iから構成されているので、現在が彼の右より大きいと判断し、アルファベット自体の値を直接加えればよい.現在の値が右より小さい場合は、IV(4)、I Vは5-1を表す4,9などの計算を説明する.したがって、現在のアルファベット値が右より小さい場合は、現在のアルファベット値を減算することができます.境界条件を処理するとokになります.
コード#コード#
構想
ローマ数字は、特殊な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